我有需要迭代的输入框(文本)行,将行中的值相乘,然后对产品求和。我能找到的唯一解决方案是将输入框转换为数组:
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并且想要使用规范方法。
答案 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);
});
答案 2 :(得分:1)
无需使用toArray
,使用.each()方法。
$('input[id$="txtVal1"]').each(function(index) {
// do something here
$(this).addClass( "myClass" );
})