Heim > Artikel > Web-Frontend > Lösen Sie das Problem, dass das Attribut (aktiviert) des Kontrollkästchens immer undefinierte_jquery ist
Als Reaktion auf die Projektentwicklungsanforderungen musste ich kürzlich eine Kontrollkästchenfunktion für alle Auswahlen erstellen.
Ups~~ Ist das nicht eine sehr einfache Sache? Es gibt ein allgemeines Kontrollkästchen und N untergeordnete Kontrollkästchen. Sobald das allgemeine Kontrollkästchen aktiviert ist, sind alle untergeordneten Kontrollkästchen aktiviert ausgewählt sind, sind die Unter-Kontrollkästchen nicht aktiviert.
Nachdem ich diese kleine Anfrage erhalten hatte, war ich insgeheim froh, was für eine einfache Funktion, OK, sie ist in zwei Minuten erledigt~~~
Die Zeit verging von Minute zu Sekunde und mein Herz Die Zahl der Pferde im Grasland ist nach und nach auf mehrere zehn Millionen gestiegen.
Was zum Teufel ist los?
alert($("#checkbox_all").attr("checked"));
Immer undefiniert?
Nani? ? ?
Warum passiert das? ? Browser, bist du dumm? Wechseln Sie dann zum Testen entschieden den Browser, von Chrome auf IE und von IE auf Firefox. Das Ergebnis ist so -_-||.
Liegt es daran, dass jquery erneut verbessert wurde? ? ? ?
Nachdem Ben Diaosi zur Überprüfung das Hubble-Teleskop und ein hochauflösendes Laserelektronenmikroskop verwendet hatte, fanden wir endlich den Hinweis. . . .
Es stellt sich heraus, dass dies in der JQuery-Version 1.6 geändert wurde:
[Das überprüfte Attribut wurde bei der Initialisierung der Seite initialisiert und ändert sich nicht mit dem Status.
Das heißt, wenn das Kontrollkästchen nach dem Laden der Seite aktiviert ist, wird der zurückgegebene Wert immer überprüft (meiner wurde zu Beginn nicht ausgewählt).
Wenn er nicht aktiviert ist Der Anfang, der zurückgegeben wird, ist immer undefiniert! 】
Da jquery hier Änderungen vorgenommen hat, muss es eine entsprechende und bessere Lösung geben:
.prop() ist ein leistungsstarkes Tool zur Lösung dieses Problems!
Die spezifische Verwendung ist wie folgt:
alert($("#checkbox_all").prop("checked"));
wird wahr bei Diesmal Oder falsch~~
Der Code dieser Diaosi wurde also wie folgt geändert:
#check_all ist das Gesamt-Kontrollkästchen für alle Auswahlen, #check_children ist das Unter- Kontrollkästchen