【发布时间】:2017-05-15 16:03:46
【问题描述】:
我试图获得平均评价。 jQuery 的第一部分用于进度条动画,第二部分用于获取评论平均值。但是我的console.log 给了我NaN,我不知道为什么。
var avg = 0;
var amount = 0;
$(".review").each(function() {
var progres = $(".progress-bar");
progres.each(function() {
avg = avg + parseInt($(".aria-valuenow").text());
amount = amount + 1;
});
});
avg = avg / amount;
console.log(avg);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="review">
<span class="progressText"><B>review 1</B></span>
<div class="progress">
<div class="progress-bar w-75" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<span class="progressText"><B>review 2</B></span>
<div class="progress">
<div class="progress-bar w-75" role="progressbar" aria-valuenow="35" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<p class="avg"></p>
</div>
【问题讨论】:
-
您没有属于
.aria-valuenow类的元素。您还可以在单个each()循环中实现您的要求 -
你的
.each()循环没有使用它循环的元素。 -
这段代码的循环太多了
-
这真的与 jQuery 无关。如果你提取出这个表达式
$(".aria-valuenow").text()并将它分配给一个变量并console.logged 它,你会自己发现问题。