我在页面上有各种评级值;我想获得平均评分,但是,我认为可行的不是目前为止。
<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
。
任何人都可以告诉我哪里出错了吗?
答案 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)' />