18

jQueryを使用して以下のテーブルを動的に作成しています...コードを実行した後、次のようにテーブルを取得します。

<table id="TableView" width="800" style="margin-left: 60px">
<tbody>
 <tr>
 <th>Module</th>
 <th>Message</th>
</tr>
<tr class="item">
 <td> car</td>
 <td>
  <input class="name" type="text">
 </td>
 <td>
<input class="id" type="hidden" value="5">
</td>
   </tr>
<tr class="item">
 <td> bus</td>
 <td>
  <input class="name" type="text">
 </td>
 <td>
<input class="id" type="hidden" value="9">
</td>
  </tr>

私はこのようにテーブルを繰り返していました:

 $("tr.item").each(function() {
            var quantity1 = $this.find("input.name").val();
        var quantity2 = $this.find("input.id").val();

            });

上記のクエリを使用して、最初の行のセルの値のみを取得しています...テーブルの行全体を反復処理し、行のセルの値を取得する jQuery を使用して、quantity1quantity2.

4

5 に答える 5

41

$(this)$this の代わりに

$("tr.item").each(function() {
        var quantity1 = $(this).find("input.name").val(),
            quantity2 = $(this).find("input.id").val();
});

証明_1:

証明_2:

于 2012-05-03T15:40:01.817 に答える
9

各行のテーブルをループし、最初の列の値を読み取ることは、JQuery と DOM ロジックを使用して機能します。

var i = 0;
var t = document.getElementById('flex1');

$("#flex1 tr").each(function() {
    var val1 = $(t.rows[i].cells[0]).text();
    alert(val1) ;
    i++;
});
于 2014-08-06T22:01:58.683 に答える
6

こんにちは、以下の助けに感謝します。私の質問の作業コードです

$("#TableView tr.item").each(function() { 
    var quantity1=$(this).find("input.name").val(); 
    var quantity2=$(this).find("input.id").val(); 
});
于 2012-05-04T04:35:25.497 に答える
4

答えはわかりましたが、入力を直接取得できるのに、なぜ tr を反復処理するのでしょうか? そうすれば、それらを配列に簡単に格納でき、CSS クエリの数を減らすことができます。もちろん、何をしたいかによって異なりますが、データを収集するには、より柔軟なアプローチです。

http://jsfiddle.net/zqpgq/

var array = [];

$("tr.item input").each(function() {
    array.push({
        name: $(this).attr('class'),
        value: $(this).val()
    });
});

console.log(array);​
于 2012-05-03T15:47:04.487 に答える