JQuery:通过输入元素循环

时间:2013-03-27 15:32:30

标签: jquery loops

我有需要迭代的输入框(文本)行,将行中的值相乘,然后对产品求和。我能找到的唯一解决方案是将输入框转换为数组:

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并且想要使用规范方法。

3 个答案:

答案 0 :(得分:9)

你可以直接遍历通过选择器找到的所有项目,如下所示:

$('input').each(function(index,data) {
   var value = $(this).val();
});

答案 1 :(得分:2)

如前所述,您可以使用.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 Example

答案 2 :(得分:1)

无需使用toArray,使用.each()方法。

$('input[id$="txtVal1"]').each(function(index) { 
    // do something here
    $(this).addClass( "myClass" );
})