2012-03-09 103 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); 

這將工作