Javascript jQuery汇总跨中的文本值
我需要从span中总结文本值,但我只能提取它们,不能总结。有没有正确的方法?我被代码屏蔽了,我是jQuery新手 演示: Html:Javascript jQuery汇总跨中的文本值,javascript,jquery,html,Javascript,Jquery,Html,我需要从span中总结文本值,但我只能提取它们,不能总结。有没有正确的方法?我被代码屏蔽了,我是jQuery新手 演示: Html: 您需要迭代每个sum元素并将其相加 var总和=0; $'.sum'.eachfunction{ sum++$this.text | | 0; }; $subtotal.textsum; 选项1=11.11美元 方案2=22.22美元 方案3=33.33美元 小计=$0.00您需要迭代每个sum元素并将其相加 var总和=0; $'.sum'.eachfunc
您需要迭代每个sum元素并将其相加 var总和=0; $'.sum'.eachfunction{ sum++$this.text | | 0; }; $subtotal.textsum; 选项1=11.11美元 方案2=22.22美元 方案3=33.33美元
小计=$0.00您需要迭代每个sum元素并将其相加 var总和=0; $'.sum'.eachfunction{ sum++$this.text | | 0; }; $subtotal.textsum; 选项1=11.11美元 方案2=22.22美元 方案3=33.33美元
小计=$0.00您刚刚犯了几个简单的错误: 您应该将计算脚本包含在subtotal函数中,否则它只能在加载时被调用,而不会再次被调用 在第一次赋值sum时缺少一个parseInt。实际上,sum是一个字符串,只获取串联。然而,这是一个错误的开始,您正在两次添加一个值 以下是更正后的脚本:
var flyersprice = '0.00';
function subtotal(){
var price = $("#quantity option:selected").attr("data-price");
flyersprice = $("#quantity option:selected").val() * price;
$("#flyers").text(flyersprice.toFixed(2));
$(".paper li").click(function(){
var selected = $(this).data("price") * $("#quantity option:selected").val();
$("#papertype").text(selected.toFixed(2));
});
$("input[type=radio]").click(function(){
var extra = $(this).data("price");
$("#extraoptions").text(extra);
});
$('.prices').each(function(){
var sum = 0.0;
$(this).each(function(){
sum += parseInt($('.sum').text());
});
$("#subtotal").text(sum);
});
}
您还应该从html中取出onchange属性并添加到脚本中:
$('input').change(subtotal);
$('select').change(subtotal);
这没有错,但最好将脚本和html分开。您刚刚犯了几个简单的错误: 您应该将计算脚本包含在subtotal函数中,否则它只能在加载时被调用,而不会再次被调用 在第一次赋值sum时缺少一个parseInt。实际上,sum是一个字符串,只获取串联。然而,这是一个错误的开始,您正在两次添加一个值 以下是更正后的脚本:
var flyersprice = '0.00';
function subtotal(){
var price = $("#quantity option:selected").attr("data-price");
flyersprice = $("#quantity option:selected").val() * price;
$("#flyers").text(flyersprice.toFixed(2));
$(".paper li").click(function(){
var selected = $(this).data("price") * $("#quantity option:selected").val();
$("#papertype").text(selected.toFixed(2));
});
$("input[type=radio]").click(function(){
var extra = $(this).data("price");
$("#extraoptions").text(extra);
});
$('.prices').each(function(){
var sum = 0.0;
$(this).each(function(){
sum += parseInt($('.sum').text());
});
$("#subtotal").text(sum);
});
}
您还应该从html中取出onchange属性并添加到脚本中:
$('input').change(subtotal);
$('select').change(subtotal);
这没有错,但最好将脚本和html分开。非常简单!使用以下代码:
很简单!使用以下代码:
$'.prices'.eachfunction{>$'.sum'.eachfunction{>>$subtotal.textsum;不允许sense@ArunPJohny-如何用2位小数计算小计?因为您的示例对价格进行了四舍五入。谢谢。我在总和中添加了.toFixed2,但没有任何更改。@Andreysh看到更新了……您需要使用parseFloat或一元加号运算符,而不是parseInt@ArunPJohny-非常感谢!@Andreysh使用Number函数,以便在您的案例$'.prices'.eachfunction{>$'.sum'.eachfunction中返回带小数的数字{>>$subtotal.textsum;不允许sense@ArunPJohny-如何用2位小数计算小计?因为您的示例对价格进行了四舍五入。谢谢。我在总和中添加了.toFixed2,但没有任何更改。@Andreysh看到更新了……您需要使用parseFloat或一元加号运算符,而不是parseInt@ArunPJohny-非常感谢!@Andreysh使用数字函数,以便在您的案例中返回带小数的数字
var total = 0;
$('.prices .sum').each(function(){
total += parseInt($(this).text());
$("#subtotal").text(total);
});