从属性JavaScript计算总和

时间:2015-06-07 10:55:27

标签: javascript sum

如何计算我在li-table中放入的许多不同get属性的总和?我想每次在li表中添加/删除时更新总数...这是代码: 使用Javascript:

var ele = info[plus.indexOf(this)];

var ul = document.getElementById("cart_id");

var li = document.createElement("LI");

var title = ele.getAttribute("data-title");

var price = parseInt(ele.getAttribute("data-price"));

li.appendChild(document.createTextNode(title+" "+price));   
ul.appendChild(li);//So far so good!!


/*Update! when I try this code below, I get current value from (data-price) X 3? 
So when I press 299 I get value 897? Why does it count like this? 
I want to sum the total!? I guess I have to put [i] inside there 
but I don't know which way, I doesn't work if I try:  
total += parseInt(listItem[i].ele.getAttribute("data-price")); */

  var total = 0;

  listItem = ele.getAttribute("data-price");

  for (var i=0; i < listItem.length; i++) 
  { 
  total += parseInt(ele.getAttribute("data-price")); 
  }

    document.querySelector("#totalPrice").value = total;

HTML:

<div class="cart">
<div id="cart">Cart</div>
<ul class="cart_ul" id="cart_id">
</ul>

<form>
<br>Total price:
<input type="text" name="totalPrice" id="totalPrice" disabled> 
</form>
</div>

<ul class="product" id="prod">
  <li class="first" data-title="iPad" data-price="299">iPad euro;299)/li>
</ul>

所以我想从&#34;产品UL级&#34;获得价格(数据价格=&#34; 299&#34;在这种情况下)并将其放入&#34;购物车UL级&#34;。

3 个答案:

答案 0 :(得分:1)

您可以为现有总价添加新价格,也可以重新计算总价。例如:

function getSum() {
   var totalPrice = 0;
   $('li').each(function () {
      totalPrice += parseInt($(this).data('price'));
   });
   return totalPrice;
}

没有jquery:

var list= document.getElementById("ul");
var listItem = list.getElementsByTagName("li");

var totalPrice = 0;

for (var i=0; i < listItem.length; i++) { 
    totalPrice += parseInt(listItem[i].getAttribute('data-price')); 
}

答案 1 :(得分:0)

在您的代码argparseprice(来自int)并将其分配到var price = parseInt(ele.getAttribute("data-price"));中的数组arr

您可能打算使用一系列元素填充var arr = price;

答案 2 :(得分:0)

这是一款适合您的全功能吸尘器

http://plnkr.co/edit/MnrUyl40AbV6jEYGEGHU?p=preview

function recalculareTotal(){

  var total = 0,
      lis = document.getElementsByTagName("li");

  for (var i = 0; i < lis.length; i++ ){
    total += parseInt(lis[i].getAttribute("data-price"));
  }

  document.querySelector("#totalPrice").value = total;
}

它没有jQuery,可以完成你需要的一切 - 添加和删除项目并计算每次的总数。

<强> 更新

  1. 代码中的“li”标记未关闭

    &lt; li class =“first”data-title =“iPad”data-price =“299”&gt; iPad euro; 299)/ li&gt;

  2. 我不知道代码中究竟是什么“ele”变量意味着什么,但首先你应该得到整个列表(UL),然后对它的元素(LI)进行交互并得到“数据价格”该列表中每个 LI的属性。

  3. 更新了plunker,请参阅函数recalculareTotal2

    http://plnkr.co/edit/PRBcOSIMWsEKPJsCGT9I?p=preview