如何使用jQuery将行追加到表中?

Ami*_*mit 52 html jquery

嗨,我试图使用jQuery向表添加一行,但它无法正常工作.
可能是什么原因?

而且,我可以为新添加的行添加一些值吗?

这是代码:

<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
        $('a').click(function() {
            $('#myTable').childs('tr').append('<tr class="child"><td>blahblah<\/td></tr>');
        });
    </script>
    <title></title>
</head>
<body>
    <a href="">Link</a>
    <table id="myTable">
        <tbody>
            <tr>
                <td>
                    test
                </td>
            </tr>
        </tbody>
    </table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Dom*_*nes 52

我假设您要将此行添加到<tbody>元素中,并且只需使用append()on <table>将插入<tr>外部<tbody>,可能会产生不良结果.

$('a').click(function() {
   $('#myTable tbody').append('<tr class="child"><td>blahblah</td></tr>');
});
Run Code Online (Sandbox Code Playgroud)

编辑:这是完整的源代码,它确实有效:(注意$(document).ready(function(){});,以前没有.

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('a').click(function() {
       $('#myTable tbody').append('<tr class="child"><td>blahblah</td></tr>');
    });
});
</script>
<title></title>
</head>
<body>
<a href="javascript:void(0);">Link</a>
<table id="myTable">
  <tbody>
    <tr>
      <td>test</td>
    </tr>
  </tbody>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


Ami*_*mit 23

以下代码有效

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function AddRow()
{
    $('#myTable').append('<tr><td>test 2</td></tr>')
}
</script>
<title></title>
</head>
<body>
<input type="button" id="btnAdd" onclick="AddRow()"/>
<a href="">test</a>
<table id="myTable">
  <tbody >
    <tr>
      <td>
        test
      </td>
    </tr>
  </tbody>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

请注意,即使表中包含一个<tbody>元素,这也适用于jQuery 1.4:

jQuery自版本1.4(?)自动检测您尝试插入的元素(使用append(),prepend(),before()或after()方法中的任何一个)是否为a <tr>并将其插入到<tbody>您的第一个中表或将其包装成新的(<tbody>如果不存在).


小智 9

也许这就是你要找的答案.它找到最后一个实例<tr />并在其后附加新行:

<script type="text/javascript">
    $('a').click(function() {
        $('#myTable tr:last').after('<tr class="child"><td>blahblah<\/td></tr>');
    });
</script>
Run Code Online (Sandbox Code Playgroud)


小智 8

我总是使用下面的代码更具可读性

$('table').append([
'<tr>',
    '<td>My Item 1</td>',
    '<td>My Item 2</td>',
    '<td>My Item 3</td>',
    '<td>My Item 4</td>',
'</tr>'
].join(''));
Run Code Online (Sandbox Code Playgroud)

或者如果有的话 tbody

$('table').find('tbody').append([
'<tr>',
    '<td>My Item 1</td>',
    '<td>My Item 2</td>',
    '<td>My Item 3</td>',
    '<td>My Item 4</td>',
'</tr>'
].join(''));
Run Code Online (Sandbox Code Playgroud)