我有下面的代码来计算各元素的比例(如投票表决系统):计算百分比
$(document).ready(function() {
$("#percentage").click(function() {
var number, sumNumbers = 0, newPercent;
$(".item").each(function() {
number = $(this).children(".itemNum").text();
number = +number;
sumNumbers += number;
if(sumNumbers != 0) {
newPercent = (number/sumNumbers) * 100;
} else {
newPercent = 0;
}
$(this).children(".percentage").text(newPercent+"%");
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item">
<span class="itemNum">0</span> <span class="percentage"></span>
</div>
<div class="item">
<span class="itemNum">2</span> <span class="percentage"></span>
</div>
<div class="item">
<span class="itemNum">1</span> <span class="percentage"></span>
</div>
<button id="percentage">Calculate Percentage!</button>
但是,结果是:
0 0%
2 100%
1 33.33333333333333%
那么,如何计算返回以下结果呢?
0 0%
2 66.66666666666667%
1 33.33333333333333%
我需要这些结果在我的轮询系统上做一个进度条,所以,如何做到这一点?
你必须先得到款项,然后才能计算出百分比。 – Musa
所以,我必须在第一个'.each'之前做其他'$(“。item”)。我做到了这一点,它的工作原理,但我不知道是否正确使用类似于:$(“。item”)。each(function(){doSomething()}); $(“。item”)。each(function(){doSomethingAgain()});'@Musa – Igor
@Igor我编辑了我的答案以回答* .each()*注释。 –