2012-03-09 82 views
2

我遇到一个问题,其中: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> 
+0

你不需要找。你只需要一个TR的数组。 '$('。table tr')'会抓住这些。但是,如果你有一个以上的班级,请注意(同样要注意你)。 ;-) – 2012-03-09 05:45:09

+1

你想要什么?问题不清楚。 – Sara 2012-03-09 05:46:41

回答

1

写成,是,你在做什么比写一个文字字符, 'N',到.eq()方法更多。试试这个:

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

这就是我想要的。 – Isoubb 2012-03-10 08:42:26

0

可能尝试使用它像你们以前qoutes $("table.table tr:eq(" + n + ")").append($newRow);

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>") 
    }); 
}); 
+0

代码较短,但结果与我想要的不同。 – Isoubb 2012-03-10 08:43:37

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); 

这将工作