各値フィールドには、数量項目のIDから導出できるID属性?もしそうなら、それはかなり素早く痛みのないものです。与えられた:
<table id="basket">
<tr class="basket-row">
<td class="basket-quantity">
<input type="text" id="product1234_quantity">
</td>
<td class="basket-subtotal">
<input type="hidden" id="product1234_unitprice" value="20">
<input type="text" readonly="readonly" id="product1234_subtotal">
</td>
</tr>
<tr class="basket-row">
<td class="basket-quantity">
<input type="text" id="product5678_quantity">
</td>
<td class="basket-subtotal">
<input type="hidden" id="product5678_unitprice" value="30">
<input type="text" readonly="readonly" id="product5678_subtotal">
</td>
</tr>
</table>
ここでは、各製品の単価は隠し属性ですが、カートの保管場所はわかりません。どこからでも取得できると仮定し、jQueryを仮定しましょう。
$('#basket').on('change','.basket-quantity input',function(e) {
$('#'+this.id.replace('_quantity','_subtotal')).val(Number($('#'this.id.replace('_quantity','_unitprice')))*Number(this.value));
});
あなたが他のIDからIDを取得できない場合、あなたはいくつかのより複雑なDOMの照会を行う必要があるだろうが、ポイントは、ハンドラの実行時に、あなたは「何を入力把握する必要がありさ再更新する。
使用しているフレームワークを指定していません。普通のJSでは、これは、ブラウザ間の互換性を保ち、イベントの添付と処理を正規化するために、多くの追加コードが必要になります。あなたは
$(this).index()
例えば
$("#jieguo_qian table tr:nth-child(4) td").each(function(){
var tindex = $(this).index() + 1;
を使用することができますそれぞれの中
TR差分で同じTDを得ることができますか? – bernie