Javascript 将div值的集合转换并添加到整数
我在一个页面上有各种评级值;我想得到平均评分,但是,我认为效果并不理想Javascript 将div值的集合转换并添加到整数,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我在一个页面上有各种评级值;我想得到平均评分,但是,我认为效果并不理想 <div class = "ratings">1</div> <div class = "ratings">5</div> <div class = "ratings">3</div> <div class = "ratings">2</div> 1 5. 3. 2. 我想把这些评分加起来,找出平均值 function ove
<div class = "ratings">1</div>
<div class = "ratings">5</div>
<div class = "ratings">3</div>
<div class = "ratings">2</div>
1
5.
3.
2.
我想把这些评分加起来,找出平均值
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)
}
}
function overallRating()
{
var items=document.getElementsByClassName(“评级”);
var itemCount=items.length;
var总和=0;
对于(变量i=0;i
sum
的控制台日志返回NaN
有人能告诉我哪里出了问题吗?
div
没有名为value
的属性(只有input
s有)。改用textContent
。更改此项:
sum += parseInt(items[i].value);
为此:
sum += parseInt(items[i].textContent);
您可能需要使用
textContent
检索div
的文本
sum += parseInt(items[i].textContent);
要简单地检索平均值,请在for循环后插入下面的代码
return sum / itemCount;
使用
.innerText
代替.value
,并在使用前进行修剪;)
function overallRating(){
var items=document.getElementsByClassName(“评级”);
var itemCount=items.length;
var总和=0;
对于(变量i=0;i
1
5.
3.
2.
OP还询问了sum
@guest271314的平均值。我打赌OP已经知道如何计算平均值。为什么这个问题会结束?这个问题是如何导致的——这个问题是由一个无法复制的问题或一个简单的印刷错误引起的@OusmaneMahyDiaw每个用户都可以通过“投票”随心所欲。从逻辑上讲,它不是。可能有人会争辩说,.textContent
对于.value
的替代可以忽略不计。返回的sum
平均值的完全省略在逻辑上不能被证明是一个问题,如果继续省略返回sum
@guest271314的平均值,则可以纠正这个问题。实际上,每个用户都可以随心所欲地进行“投票”,这样做应该有一个合理的理由,而不是因为他们喜欢他们的“投票”。“应该是”不存在。对于“投票”的评估,“有效”应限于第一次是否允许“投票”,第二次是否“自由”。@guest271314我想如果“关闭”使其重新打开,我将不得不与该案例作斗争,并且必须再次向元站点强调这一点。应该认真对待接近票数的选票,而不是像他们所希望的那样进行“投票”。
sum += parseInt(items[i].innerText.trim());