Jquery收集要挂载的属性(数字)

时间:2014-05-24 15:32:51

标签: jquery

我有一个列表(ul列表),每个li项目都有一个'数据预处理' 。我想从拥有班级的人那里收集。#select;'并放入文本,如山。

Ex:10 + 20 + 15 = 45

http://jsfiddle.net/wdLaR/

HTML:

     <div class="div">
          <ul class="lista-analize">
                    <li class="a" data-pret="10">Hemoleucogramă completă <span class="pret">10 lei</span></li>
                    <li class="a" data-pret="15">Numărare reticulocite <span class="pret">15 lei</span></li>
                    <li class="a" data-pret="20">VSH <span class="pret">20 lei</span></li>
                    <li class="a" data-pret="10">INR (International Normalised Ratio) <span class="pret">10 lei</span></li>
                    <li class="a" data-pret="15">Determinare grup sanguin ABO <span class="pret">15 lei</span></li>
                    <li class="a" data-pret="25">Determinare grup sanguin RH <span class="pret">25 lei</span></li>
                    <li class="a" data-pret="35">Colinesteraza <span class="pret">35 lei</span></li>
                    <li class="a" data-pret="5">Proteine serice totale <span class="pret">5 lei</span></li>
                    <li class="a" data-pret="15">Hemoglobina glicozilată (HbA1C) <span class="pret">15 lei</span></li>
                    <li class="a" data-pret="20">Factor rheumatoid <span class="pret">20 lei</span></li>
                </ul>

                <span id="total"></span>

Jquery的

$(document).ready(function(){
$('.content-stanga').on('click', 'li.a', function(){
   $(this).toggleClass("selectat", 200);

   var sume = 0;

while (($(this).hasClass("selectat")) && (sume === 0)) { 
  var sume = +$(this).data("pret");
}

$('#total').text(sume);

});
});

1 个答案:

答案 0 :(得分:1)

您可以使用each()对元素具有该类的数据值求和。此外,在循环中设置var的值时,您不希望使用sume关键字,并且要检查sume == 0是否适得其反选中的元素,因为它只会添加第一个项目。最后,要使用值增加变量,它是+=,而不是= +

试试这个:

$('.content-stanga').on('click', 'li.a', function(e) { 
    e.preventDefault();
    $(this).toggleClass("selectat");
    var sume = 0;
    $('.content-stanga li.a.selectat').each(function() {
        sume += $(this).data('pret');
    });
    $('#total').text(sume);
});

Example fiddle