8

入力ボックス (テキスト) の行があり、行内で値を乗算し、積を合計して反復処理する必要があります。私が見つけた唯一の解決策は、入力ボックスを配列に変換することです。

var array1 = $('input[id$="txtVal1"]').toArray();
var array2 = $('input[id$="txtVal2"]').toArray();
var temp1;
var temp2;
var sum=0;

そして、以下を使用して繰り返して合計します。

for (i = 0; i < array1.length; i++) {
    if (array1[i].value.length > 0) { //make sure we have data
        temp1 = parseFloat(array1[i].value);
        temp2 = parseFloat(array2[i].value);
        sum += temp1 * temp2;
    }
}

これは機能します。ただし、私はJQueryを学習しているだけで、正規の方法を使用したいと考えています。

4

3 に答える 3

12

次のように、セレクターを介して見つかったすべてのアイテムを直接ループできます。

$('input').each(function(index,data) {
   var value = $(this).val();
});
于 2013-03-27T15:35:56.950 に答える
3

前述のように、 .each() を使用してこのタスクを実行できますが、質問で要求されたデータを使用する例を次に示します。入力の「行」について言及したので、テーブル行にあると想定しています。

$('tr').each(function () {
    var $this = $(this),
        sum = parseFloat($this.find('input[id$="txtVal1"]').val()) * parseFloat($this.find('input[id$="txtVal2"]').val());
    alert(sum);
});

これがjsFiddleの例です

于 2013-03-27T15:53:43.710 に答える
2

.each()メソッドをtoArray使用する必要はありません。

$('input[id$="txtVal1"]').each(function(index) { 
    // do something here
    $(this).addClass( "myClass" );
})
于 2013-03-27T15:35:01.590 に答える