Heim  >  Artikel  >  Web-Frontend  >  Lösen Sie das Problem, dass das Attribut (aktiviert) des Kontrollkästchens immer undefinierte_jquery ist

Lösen Sie das Problem, dass das Attribut (aktiviert) des Kontrollkästchens immer undefinierte_jquery ist

WBOY
WBOYOriginal
2016-05-16 16:44:171221Durchsuche

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

Code kopieren Der Code lautet wie folgt:

$("#check_all"). change(function(){
$('.check_children').prop("checked",this.checked);
});

oder:
Code kopieren Der Code lautet wie folgt:

$("#check_all").change(function(){
var is_checked = $(this) .prop("checked");
$('.check_children').prop("checked",is_checked});

Ich verwende es jedoch immer noch gerne. Die erste Methode: Je weniger Code, desto besser ~~ weniger schreiben, mehr tun

Es ist sehr praktisch, das Problem der Auswahl aller zu lösen ~~~
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn