0

私はコードをもっている。

var countRow = $('table#receiving-stock-view tr').length - 1;
var ar = new Array();
for(var iter=0;iter<countRow;iter++){
ar[iter] = $('div.modal table#receiving-stock-view tr#'+iter).find('input[name=rspid]').attr('id')
        +","+$('div.modal table#receiving-stock-view tr#'+iter).find('input[name=rsqty]').val()
        +","+$('div.modal table#receiving-stock-view tr#'+iter).find('input[name=rscost]').val()
        +","+$('div.modal table#receiving-stock-view tr#'+iter).find('input[name=rssrp]').val();
        console.log($('table#receiving-stock-view tr#'+iter).find('input[name=rsqty]').val());
        console.log(ar[iter]);
}

ただし、ループ中は、一貫して最初の行でのみ機能します。他の行ではランダムに失敗します。

でも、

for(var iter=0;iter<countRow;iter++){
ar[iter] = $('#receiving-stock-view tr#'+iter).find('input[name=rspid]').attr('id')
        +","+$('#receiving-stock-view tr#'+iter).find('input[name=rsqty]').val()
        +","+$('#receiving-stock-view tr#'+iter).find('input[name=rscost]').val()
        +","+$('#receiving-stock-view tr#'+iter).find('input[name=rssrp]').val();
}

検索して ID を残す要素を指定しないと、すべての値が適切に読み取られます。なぜこれが起こるのか分かりますか?それは本当に奇妙です。

編集: ajax を使用して新しい行を追加します。テーブル全体がモーダル クラス内にあります。

<table id="receiving-stock-view">

 <thead hidden="true" style="display: table-header-group;">
 <tr>
 <th>Product</th>
 <th>Quantity</th>
 <th>Cost</th>
 <th>SRP</th>
 <th>Sub-Total</th></tr>
 </thead>

  <tbody>
 <tr id="0">
 <td><span><input type="text" value="HeadPhoneszs" name="rspid" id="1"></span></td>
 <td><input type="text" value="1" name="rsqty" id="rsqty_id"></td>
 <td><input type="text" value="1" name="rscost" id="rscost_id"></td>
 <td><input type="text" value="1" name="rssrp" id="rssrp_id"></td></tr>
 <tr id="1"><td><span><input type="text" value="vp" name="rspid" id="13"></span></td>
 <td><input type="text" value="2" name="rsqty" id="rsqty_id"></td>
 <td><input type="text" value="2" name="rscost" id="rscost_id"></td>
 <td><input type="text" value="2" name="rssrp" id="rssrp_id"></td>
 </tr>
 </tbody>
</table>
4

1 に答える 1