你好我试图添加的人,在同一个div中找到的所有值...
<div id="price">20</div>
<div id="price">25</div>
<div id="price">10</div>
<div id="price">10</div>
<div id="price">5</div>
所以在我的输出中,我应该得到总计value=70
..我尝试使用each
和map
两者都没有按预期工作...
var total = 0;
$( "#price" ).map(function() {
var total + = Number($(this).val());
}).get();
console.log(total);
我在Unexpected token +=
的情况下遇到错误each
,有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
您得到的错误是由+
和=
操作符之间的间距引起的。 Ids也应该是唯一的,请使用class.try:
<强> DOM:强>
<div class="price">20</div>
<div class="price">25</div>
<div class="price">10</div>
<div class="price">10</div>
<div class="price">5</div>
<强> JS:强>
var total = 0;
$( ".price" ).each(function() {
total += parseInt($(this).text());
});
console.log(total);
<强> Working Demo 强>
不推荐这样做,但您可以使用attribute-value来定位具有相同ID的元素:
var total = 0;
$( "[id=price]" ).each(function() {
total += parseInt($(this).text());
});
console.log(total);
<强> Demo with attribute-value 强>
答案 1 :(得分:0)
首先,给所有这些div提供相同id的做法是不好的。你应该给他们每个人一个类,并尝试这样的事情:
var total = 0;
$('.price').each(function(e){
total += parseInt($(this).text());
});
答案 2 :(得分:0)
// javascript solution
var div = document.getElementsByTagName("div")
var total = 0;
for(var i=0;i<div.length;i++){
total+= parseInt(div[i].textContent)
}
alert(total)