Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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
jquery在循环中添加到变量_Jquery_Variables - Fatal编程技术网

jquery在循环中添加到变量

jquery在循环中添加到变量,jquery,variables,Jquery,Variables,我试图添加到一个变量中,并在循环结束时获取总价,然后将其添加到span标记中的一个值中,并对其进行更新。我不确定如何使用jquery,我通常使用php。这是我尝试过的,但我一无所获 $.each(data, function(key, obj) { items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>'); totalprice += obj.price }

我试图添加到一个变量中,并在循环结束时获取总价,然后将其添加到span标记中的一个值中,并对其进行更新。我不确定如何使用jquery,我通常使用php。这是我尝试过的,但我一无所获

$.each(data, function(key, obj) {
    items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>');
    totalprice += obj.price
});

$("#addonPrice").html($("#addonPrice").text() + totalprice);
$。每个(数据、功能(键、obj){
项目推送(“
  • “+obj.title+”€“+obj.price+”
  • ”); 总价格+=目标价格 }); $(“#addonPrice”).html($(“#addonPrice”).text()+totalprice);
    您需要在循环之前实例化
    totalprice
    ,因为totalprice将不再存在于
    $的上下文中。每个

    尝试以下操作:

    var totalprice = 0;
    
    $.each(data, function(key, obj){
        items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>');
        totalprice = totalprice + parseFloat(obj.price);
    });
    $('#addonPrice').html(parseFloat($('#addonPrice').text()) + totalprice);
    
    var totalprice=0;
    $。每个(数据、功能(键、obj){
    项目推送(“
  • “+obj.title+”€“+obj.price+”
  • ”); totalprice=totalprice+parseFloat(目标价格); }); $('#addonPrice').html(parseFloat($('#addonPrice').text())+totalprice);
    您需要初始化总价,并将价格/附加价格转换为浮点数,以将其作为数字使用


    我希望这会有所帮助。

    您应该在循环之前将
    totalprice
    初始化为零,并在添加它之前将
    parseFloat()
    应用到
    obj.price

    var totalprice = 0;
    $.each(data, function(key, obj) {
        items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>');
        totalprice += parseFloat(obj.price);
    });
    $("#addonPrice").html(parseFloat($("#addonPrice").text()) + totalprice);
    
    var totalprice=0;
    $。每个(数据、功能(键、obj){
    项目推送(“
  • “+obj.title+”€“+obj.price+”
  • ”); 总价格+=浮动价格(目标价格); }); $(“#addonPrice”).html(parseFloat($(“#addonPrice”).text())+totalprice);
    关于这一点有几点。首先,您没有显示初始化
    totalprice
    变量的位置和方式。通常,这应该在循环之外完成。其次,根据
    obj.price
    的类型,您使用的
    +=
    运算符可能会执行字符串连接而不是数字相加。另外,
    .text
    函数返回一个字符串,因此在循环结束时执行加法时需要将其转换为数字:

    var totalprice = 0;
    $.each(data, function(key, obj) {
        items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>');
        totalprice += Number(obj.price);
    });
    
    $("#addonPrice").html(parseFloat($("#addonPrice").text()) + totalprice);
    
    var totalprice=0;
    $。每个(数据、功能(键、obj){
    项目推送(“
  • “+obj.title+”€“+obj.price+”
  • ”); 总价+=数量(目标价格); }); $(“#addonPrice”).html(parseFloat($(“#addonPrice”).text())+totalprice);
    试试这个:

    totalprice += parseInt(obj.price);
    

    在调用each()之前是否添加了“var totalprice=0;”?还有,obj.price是一个字符串还是一个数字?你能给我们看一个数据对象的示例吗?