如何将包含1
,2
和3
的所有文本框的值合计为sum_1
,sum_2
和{{1} }}
我试过这种方式
Jquery:
sum_3
HTML here:
$(document).on("change", ".1", function() {
var sum = 0;
$(".1").each(function(){
sum += +$(this).val();
});
$(".total").val(sum);
});
这是小提琴http://jsfiddle.net/5gsBV/36/,适用于一个值
但是我怎么能为3个值做这个,就像我在这个小提琴中给出的问题中提到的那样http://jsfiddle.net/vL6f2tow/1/
我怎样才能得到总和的总和
答案 0 :(得分:2)
如果你想在加载时这样做,你应该做这样的事情
$('.item').each(function(){
var itemNumber = $(this).attr('class').split(" ");
itemNumber.splice( itemNumber.indexOf("item"), 1 );
var sumElement = $(".sum_" + itemNumber);
var sum = (sumElement.val() == "") ? 0 : parseInt(sumElement.val());
sum += parseInt($(this).val());
sumElement.val(sum);
});
这是计算本地金额的demo
如果您想计算全局总和(本地总和的总和),这里是demo 2
如果您有多个这样的输入组,那么您必须为每个输入添加一个类,以便您知道需要考虑哪些输入元素来计算总和。
<input type="text" class="item 1" value="1" />
<input type="text" class="item 2" value="2" />
<input type="text" class="item 2" value="3" />
<input type="text" class="item 2" value="4" />
<input type="text" class="item 3" value="5" />
<input type="text" class="item 3" value="6" />
<input type="text" class="item 3" value="7" />
<br>
<br>
<input type="text" class="sum_1" value="" />
<input type="text" class="sum_2" value="" />
<input type="text" class="sum_3" value="" />
$(document).on("change", ".item", function () {
var sum = 0;
var itemNumber = $(this).attr('class').split(" ");
itemNumber.splice( itemNumber.indexOf("item"), 1 );
$('.'+itemNumber).each(function () {
sum += parseInt($(this).val());
});
$(".sum_" + itemNumber).val(sum);
});
在上面的脚本中,
$(this).attr('class')看起来像“第1项”
$(this).attr('class')。split(“”)将是一个数组[“item”,“1”]
然后我删除item
一词并使用"1"
这是demo
希望这有帮助。
答案 1 :(得分:0)
在你的第二个小提琴中,你提到$(".sum1")
实际上你的班级被命名为sum_1(而不是sum1)。还需要在jsfiddle
答案 2 :(得分:0)
正如mayanktum所说,你忘了添加jQuery。同样在最后一行中,您错误地将选择器命名为$(".sum1")
而不是$(".sum_1");
。之后一切正常。
$(document).on("change", ".1", function() {
var sum = 0;
$(".1").each(function(){
sum += +$(this).val();
});
$(".sum_1").val(sum);
});