我有几个<input>
元素,如下所示:
<input id="hosts" name="250" class="hostselector" type="number" min="0" max="999" value="0" />
我想将值(用户输入的值)与我在名称中存储的值相乘。
现在页面上有几个元素,都是class="hostselector"
。我想得到所有值的总和,所以在某种意义上说:
(value * name) + (value * name) + .... every single element with that class.
我如何使用jquery做到这一点?
答案 0 :(得分:4)
var total = 0;
$(".hostselector").each(function() {
total+= parseInt(this.value, 10) * parseInt($(this).attr("name"), 10);
});
循环遍历具有类.hostselector
的所有元素,将当前值乘以name
属性的值(这是一个字符串,因此使用parseInt
),并维护所有元素的总计。
这是example fiddle显示它正常工作(只需点击按钮即可查看最终结果)。
答案 1 :(得分:1)
它应该是这样的:
var total = 0;
$('.hostselector').each(function() {
total += parseInt($(this).val(), 10) * parseInt($(this).attr('name'), 10);
})
“total”var包含您要查找的数字。
parseInt部分或多或少是可选的,如果没有它,javascript仍然会返回正确的结果,但是因为.val()和.attr()返回字符串,所以它是正确的。
答案 2 :(得分:0)
试试这个:
var sum = 0;
$.each('.hostselector', function(i ,item){
sum += $(item).val();
// or sum += $(item).attr("Your_Attribute_here");
});
alert(sum);