Javascript 如何使用jquery合计具有相同类的textbox的值并将其放入另一个textbox中
我如何合计所有具有类Javascript 如何使用jquery合计具有相同类的textbox的值并将其放入另一个textbox中,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我如何合计所有具有类1、2和3的文本框的值,并将其放入sum\u 1、sum\u 2和sum\u 3 我试过用这种方法 Jquery在这里: $(document).on("change", ".1", function() { var sum = 0; $(".1").each(function(){ sum += +$(this).val(); }); $(".total").val(sum); }); 此处为HTML: <inp
1
、2
和3
的文本框的值,并将其放入sum\u 1
、sum\u 2
和sum\u 3
我试过用这种方法
Jquery在这里:
$(document).on("change", ".1", function() {
var sum = 0;
$(".1").each(function(){
sum += +$(this).val();
});
$(".total").val(sum);
});
此处为HTML:
<input type="text" class="1" value="1" />
<input type="text" class="2" value="2" />
<input type="text" class="3" value="5" />
这是一把小提琴,它只适用于一种价值
但是我怎么能像我在这个问题中所问的那样,对3个值这样做呢
更新:
我怎样才能得到你提到的第二把小提琴中的sum值,而实际上你的类名为sum_1(不是sum1)。另外,jQuery库需要添加到JSFIDLE中,正如mayanktum所说的,您忘记添加jQuery了。同样,在最后一行中,您错误地将选择器命名为
$(“.sum1”)
,而不是$(“.sum_1”)代码>。在那之后一切都很好
$(document).on("change", ".1", function() {
var sum = 0;
$(".1").each(function(){
sum += +$(this).val();
});
$(".sum_1").val(sum);
});
如果你想在负载下做这件事,你可能应该这样做
$('.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);
});
下面是一个计算局部和的方法
如果你想计算一个全局和(局部和之和),这里有一个
如果你有多个这样的输入组,那么你必须为每个输入添加一个类,这样你就知道你需要考虑哪些输入元素来计算。
<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);
});
$(document).on(“change”,“.item”,函数(){
var总和=0;
var itemNumber=$(this.attr('class').split(“”);
项目编号.拼接(项目编号.索引(“项目”),1);
$('..+itemNumber).each(函数(){
sum+=parseInt($(this.val());
});
$(“.sum_”+itemNumber).val(sum);
});
在上面的脚本中
$(this.attr('class')看起来像“item 1”
$(this.attr('class').split(“”)将是一个数组[“item”,“1”]
然后我删除单词项
,并使用该“1”
这是一个
希望这有帮助。请在您的问题中添加相关的HTML;不要指望我们愿意浏览其他网站(甚至JS Fiddle)来找到你的代码。让我们帮助你变得容易。我也更新了html。谢谢\你忘了在第二个fiddle链接中添加jquery。是的,我在php foreach函数中有这个文本框,我甚至不知道它将有多少个文本框,所以我应该使用这种类型吗?是的,它应该适用于你解释的场景。请检查更新的答案,这不重要。请确保已将项添加为类。另外,请确保jquery代码正好位于它正在工作的结束正文标记上方。。但是整个函数都在onchange中。。如何在document ready本身+1中更改它以获得您的答案。。。但我试过了,但没有成功。我可以在document ready中更改它吗?它还可以在更改项目后工作。。