在表中插入新行
问题描述:
我遇到一个问题,其中: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>
答
写成,是,你在做什么比写一个文字字符, 'N',到.eq()
方法更多。试试这个:
$("table.table tr:eq(" + n + ")").append($newRow);
+0
这就是我想要的。 – Isoubb 2012-03-10 08:42:26
答
可能尝试使用它像你们以前qoutes $("table.table tr:eq(" + n + ")").append($newRow);
答
无需指数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
答
更换
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);
这将工作
你不需要找。你只需要一个TR的数组。 '$('。table tr')'会抓住这些。但是,如果你有一个以上的班级,请注意(同样要注意你)。 ;-) – 2012-03-09 05:45:09
你想要什么?问题不清楚。 – Sara 2012-03-09 05:46:41