将div值的集合转换并添加到Integers

时间:2017-04-27 17:56:24

标签: javascript jquery html dom

我在页面上有各种评级值;我想获得平均评分,但是,我认为可行的不是目前为止。

<div class = "ratings">1</div>
<div class = "ratings">5</div>
<div class = "ratings">3</div>
<div class = "ratings">2</div>

我想总结这些评分并找到平均值。

function overallRating()
{
       var items = document.getElementsByClassName("ratings");
       var itemCount = items.length;
       var sum= 0;

       for(var i = 0; i < itemCount; i++)
       {
            sum += parseInt(items[i].value);
            console.log(sum)
       }
}

sum的控制台日志返回NaN

任何人都可以告诉我哪里出错了吗?

3 个答案:

答案 0 :(得分:3)

您可能希望使用textContent来检索div的文字。

sum += parseInt(items[i].textContent);

简单地检索平均值,在for循环后插入下面的代码。

return sum / itemCount;

答案 1 :(得分:2)

div没有名为value的财产(只有input s)。请改用textContent。改变这个:

sum += parseInt(items[i].value);

到此:

sum += parseInt(items[i].textContent);

答案 2 :(得分:0)

使用.innerText代替.value,并在使用前修剪;)

 sum += parseInt(items[i].innerText.trim());

function overallRating() {
  var items = document.getElementsByClassName("ratings");
  var itemCount = items.length;
  var sum = 0;

  for (var i = 0; i < itemCount; i++) {
    sum += parseInt(items[i].innerText.trim());
    console.log(sum)
  }
}
<div class="ratings">1</div>
<div class="ratings">5</div>
<div class="ratings">3</div>
<div class="ratings">2</div>
<input type='submit' onClick='overallRating(this)' />