我有一个列表(ul列表),每个li项目都有一个'数据预处理' 。我想从拥有班级的人那里收集。#select;'并放入文本,如山。
Ex:10 + 20 + 15 = 45
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);
});
});
答案 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);
});