0

一連の動的テーブル行をループしています。jquery を使用して各テーブル行の cell2 の値を取得しようとしていますが、毎回 cell1 の正しい行の値を認識しても、毎回 cell2 row1 の値を返します。誰かが私が間違っていると教えてください。以下のサンプルコードを参照してください。

助けてくれてありがとう。

//html
<table class=plantTable>
<tr>
<td><input type=text value=0 class=cell1></td>
<td><input type=text value=0 class=cell2></td>
<td><input type=text value=0 class=cell3></td>
</tr>
<tr>
<td><input type=text value=0 class=cell1></td>
<td><input type=text value=0 class=cell2></td>
<td><input type=text value=0 class=cell3></td>
</tr>
<tr>
<td><input type=text value=0 class=cell1></td>
<td><input type=text value=0 class=cell2></td>
<td><input type=text value=0 class=cell3></td>
</tr>
</table>

//jquery
   tr = $(".plantTable tr").length;

   $(tr).each(function () {
      $(this).find($(".cell1").blur(function () {
      cell1val = parseInt($(this).val());
      cell2val = parseInt($(".cell2").val());  //Returns the value of cell2 in the first row only?
   }));
4

3 に答える 3

0

jQuery は次のようになります。

$('.plantTable tr').each(function () {
    $(this).find('.cell1').blur(function () {
        cell1val = parseInt($(this).val());
        cell2val = parseInt($(this).siblings(".cell2").val());
    });
});
于 2013-02-14T16:03:52.737 に答える
0

解決策についてはあなたの仕事を完璧にこなしますが、新しい要素が追加されるたびに疑問に思います。以下のコードは、将来、他の入力要素が追加された場合でも正常に動作します..

 // If you want to maintain resusable collection of all inputs inside  
 var inputCollection = $([]).pushStack($("table.plantTable :input"));
 // Then do operations with inputCollection
 // Else, you could follow chaining like below  

 $("table.plantTable").delegate("input", "blur", function() {
    var inputs = $(this).closest('tr').find(':input');
    // do whatever you want to with inputs
 });
于 2013-02-14T16:26:18.460 に答える
0

もう一度検索している検索内で、ドキュメントを上から見て、row1 cell2 を検索します。現在のアイテムの兄弟が必要な場合は、次のようにします。

   $("tr").each(function () {
      $(this).find($(".cell1")).blur(function () {
         cell1val = parseInt($(this).val());
         cell2val = parseInt($this.siblings(".cell2").val());
      });
   });

これにより、現在見つかっている cell1 の隣にある cell2 の値が取得されます。

于 2013-02-14T16:02:43.943 に答える