循环遍历具有相同类的div元素,并获取值

时间:2014-07-17 07:13:35

标签: jquery

我有以下html:

<input id="box20" name="rooms[]" value="20" class="box" type="checkbox">
<div>68.00</div> € / night
<input id="box21" name="rooms[]" value="21" checked="checked" class="box" type="checkbox">
<div class="specialprice">68.00</div>€ / night
<input id="box22" name="rooms[]" value="22" class="box" type="checkbox">                                                        
<div>155.00</div> € / night

<h4>Total: <div class="newprice"></div></h4>  

我想用class specialprice获取div的值,我想在另一个名为newprice的div中显示总和。

我正在尝试使用以下javascript,但到目前为止我收到空白警报:

$(document).ready(function(){
             $('.specialprice').each(function() {
   x = $('.specialprice').innerHTML;
   alert(x);
 });

});

如果班级是公正的,我对获得该价值不感兴趣,我想要的是从名为specialprice的div中获取所有价格并从这些值中得到总和。

3 个答案:

答案 0 :(得分:2)

您正在警告阵列:

$(document).ready(function(){
    $('.specialprice').each(function(i, el) {
       x = $(el).html();
       alert(x);
    });
});

答案 1 :(得分:0)

像这样:

var addPrice;
$('.newprice').text(function(){
  return $('.specialprice').each(function(){
      addPrice += parseInt($(this).text(),10);
  });
});

答案 2 :(得分:0)

您必须使用$(this)变量来访问当前元素 - Reference to the jQuery API - 否则您将拥有一个集合而不是正确的元素。

var prices = [], sum = 0;

$(document).ready(function(){
   $('.specialprice').each(function() {
        var currentItem = $(this);       // Reference to the current item
        prices.push(currentItem.text()); // or .innerHTML, method to get the text
   }

   prices.forEach(function(entry) {
        sum += parseInt(entry);          // Otherwise it would be a string Concatenation
   }

   $('.newprice').text(sum);
});