2012-03-09 22 views
2

:eq()は、テーブルの新しい列に値を挿入するために、nというカウンタを受け入れないという問題があります。テーブルに新しい行を挿入

$(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')'はそれらをつかむでしょう。しかし、そのクラスのテーブルが2つ以上ある場合は、注意してください(同じことが気になります)。 ;-) –

+1

何が欲しいですか?質問がはっきりしない – Sara

答えて

1

書かれた-され、あなたが.eq()メソッドにリテラル文字、 'N' を書くより多くの何もしないいます。これを試してみてください:

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

これは私が欲しかったものです。 – Isoubb

0

すると、あなたの引数が最初のものがインデックスであることを示すようにするので$.each内のインデックスthisにqoutes $("table.table tr:eq(" + n + ")").append($newRow);

0

不要を使用し、前の行のようにそれを使用してみてください可能性があります。

$(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

0

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

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

を交換してくださいこれはあなたが見つける必要はありません

関連する問題