2017-07-15 4 views
0

jQueryのセレクタの連結に問題があります。 5つの明細行で見積もりを作成するための動的生成フォームがあります。計算する必要があります合計コストを掛けてください。商品代金商品数私は私のjQueryでこの結果を達成しようとしていますJQueryでセレクタを連結する方法は?

NumberOfLinesInForm = 5; 
var id; 

for (i = 0; i < NumberOfLinesInForm; i++) { 

    document.write(i); 

    $('#ItemCost' + 'id', '#ItemQuantity' + 'id').keyup(function() { 
     var ItemQuantityItem + 'id' = parseFloat($('#ItemQuantity' + 'id').val()) || 0; 
     var ItemCostItem + 'id' = parseFloat($('#ItemCost' + 'id').val()) || 0; 

     $('#ItemCostTotal' + 'id').val(ItemQuantityItem * ItemCostItem); 

    }); 

} 

$('#ItemCost1', '#ItemQuantity1').keyup(function() { 

    var ItemQuantityItem1 = parseFloat($('#ItemQuantity1').val()) || 0; 
    var ItemCostItem1 = parseFloat($('#ItemCost1').val()) || 0; 

    $('#ItemCostTotal1').val(ItemQuantityItem1 * ItemCostItem1); 

}); 

任意の助けをいただければ幸い私は、次のコードを持っています!

+0

コードはどうなりますか?何かエラーが出ますか?私はあなたがしたいことを得ることはありません。 – ElChiniNet

+0

スニペットを作成できますか? –

答えて

1

ただ、単一の文字列内のセレクタを記述し、その代わりに:あなたは2 paremetersを使用して、そのようにそれを使用する場合

$('#ItemCost1, #ItemQuantity1').keyup(function(){ 

、2番目のパラメータは次のとおりです。あなたがこれを使用

$('#ItemCost1', '#ItemQuantity1').keyup(function(){ 

を文脈を表すために使用されるので、は決して選択されない。http://api.jquery.com/jQuery/


次に、あなたは変数をCONCATしたい場合、彼らはが文字列であってはなりませんので、この:

$('#ItemCost' + 'id', '#ItemQuantity' + 'id').keyup(function(){ 

は次のようになります。

$('#ItemCost' + id + ', #ItemQuantity' + id).keyup(function(){ 

次に、これは動作しません。

var ItemQuantityItem + 'id' = ... 

変数を定義して、それに文字列を追加し、そのすべてに値。

+0

それは魅力的に機能しました! – Luke

+0

ただ、文字列や変数にはもっと注意してください。 – Shomz

+0

これはうまくいかない理由はありますか?var ItemQuantityItem0 = parseFloat($( '#ItemQuantityItem' + i).val())|| 0; '' + i 'を追加すると、このコードはもう動作しません。私が単に '#I​​temQuantityItem0'を使うだけであれば動作します。私の構文は正しいですか?どうもありがとう! – Luke

関連する問題