Ich habe einige JQuery-Code geschrieben, um über einige Checkboxen auf einer ASP.Net-Webseite zu iterieren, und ich sehe 2 sehr seltsame Probleme mit der if-Anweisung in der $ .each-Funktion eingebettet. Der Code wählt meine Checkboxen gut aus, und wenn der Code durch die $ .each-Funktion iteriert, kann ich klar erkennen, dass objValue.checked richtig oder falsch ist, abhängig davon, ob ich das Kontrollkästchen aktiviert habe oder nicht. Die Probleme, die ich sehe, sind: 1) dass es immer in meine if-Anweisung fällt (selbst wenn der Wert von objValue.checked falsch ist), und 2) der Wert meiner availableInstalls-Variable wird nie dekrementiert, obwohl ich darin sehen kann Debug-Modus, der die Codezeile "availableInstalls = availableInstalls - 1" erreicht. Wer weiß, was dieses Verhalten verursacht?JQuery if-Anweisung
$(document).ready(function() {
$(".installsoftwarecb").click(function() {
var availableInstalls = 10;
var checkBoxes = $(".installsoftwarecb input[type='checkbox']");
$.each(
checkBoxes, function(intIndex, objValue) {
if (objValue.checked) {
availableInstalls = availableInstalls - 1;
}
});
});
});
Der Selektor wird funktionieren, aber es sollte wirklich eingegeben werden: checkbox: checked stattdessen,: checked wird jedes einzelne Element im Kontext betrachten, was ziemlich ineffizient sein kann. Sie können es auf Checkboxen mit Eingabe filtern: Checkbox - es ist wahrscheinlich die meiste Zeit keine große Sache, aber es ist nur eine gute Übung. –
Wie ich in dem anderen Kommentar geschrieben habe, stimme ich dir zu und habe meine Antwort bearbeitet. Persönlich denke ich nicht, dass Geschwindigkeit es wirklich wichtig wäre, aber die Tatsache, dass es Radio-Button-Element zählen kann, ist ein Potenzial für Fehler, wenn der HTML-Code in der Zukunft geändert wird. – SolutionYogi
Vielen Dank für die Aktualisierung Ihrer Antwort. +1 :) –