Ich habe den folgenden Code den Prozentsatz jedes Elements (wie Umfrage Wahlsystem) zu berechnen:berechnen Prozent jedes Elements
$(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>
Aber das Ergebnis ist:
0 0%
2 100%
1 33.33333333333333%
Also, wie berechnet man das folgende Ergebnis zurück?
0 0%
2 66.66666666666667%
1 33.33333333333333%
Ich brauche diese Ergebnisse, um einen Fortschrittsbalken auf meinem Poll-System zu machen, also, wie man das macht?
Sie haben die Summe zuerst erhalten, bevor Sie die Prozentsätze berechnen kann. – Musa
Also, ich muss andere '$ (". Item ") tun. Jedes ...' vor dem ersten '.each'? Ich habe das gemacht und es funktioniert, aber ich weiß nicht, ob es richtig ist, etwas wie: '$ (". Item ") zu verwenden. Je (function() {doSomething()}); $ (". item"). je (function() {doSomethingAgain()}); '@Musa – Igor
@Igor Ich habe meine Antwort bearbeitet, um auf * .each() * comment zu antworten. –