在表中插入新行

时间:2012-03-09 05:37:59

标签: jquery

我遇到一个问题,即:eq()不接受计数器n,以便将值插入HTML中的表的新列。

$(document).ready(function() {  
    var $tablerow = $('table.table').find('tr');
    count = 0;

    $tablerow.each(function(index, value){
        count += 1;
        var $listitem = $(this);
        n = parseInt($listitem.index());
        var $newRow = $("<td>" + n + "</td>");
        $("table.table tr:eq(n)").append($newRow);
    });
});  

HTML

<table class="table">
    <tr><td>First row</td></tr>
    <tr><td>second row</td></tr>
    <tr><td>third row</td></tr>
    <tr><td>fourth row</td></tr>
    <tr><td>fifth row</td></tr>
    <tr><td>sixth row</td></tr>
    <tr><td>seventh row</td></tr>
    <tr><td>eighth row</td></tr>
</table>

4 个答案:

答案 0 :(得分:1)

按原样编写,除了将文字字符“n”写入.eq()方法之外,您所做的只不过了。试试这个:

$("table.table tr:eq(" + n + ")").append($newRow);

答案 1 :(得分:0)

可以尝试使用它,就像您使用qoutes的上一行一样 $("table.table tr:eq(" + n + ")").append($newRow);

答案 2 :(得分:0)

无需在this内索引$.each,因为您的参数显示第一个是索引。

 $(document).ready(function() {  
    var $tablerow = $('table.table tr');

    $tablerow.each(function(index,element){
       /* "this" is current row*/
         $(this).append("<td>" + index+1 + "</td>" )
    });
});  

答案 3 :(得分:0)

替换

 var $newRow = $("<td>" + n + "</td>");
 $("table.table tr:eq(n)").append($newRow);`

var $newRow = $("<td>" + (n+1) + "</td>");
$("table.table tr:eq(" + n + ")").append($newRow);

这将有效