Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery汇总跨中的文本值_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery汇总跨中的文本值

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

我需要从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'.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);
});