Maison > interface Web > js tutoriel > Résoudre le problème selon lequel l'attr (coché) de la case à cocher est toujours undefined_jquery

Résoudre le problème selon lequel l'attr (coché) de la case à cocher est toujours undefined_jquery

WBOY
Libérer: 2016-05-16 16:44:17
original
1233 Les gens l'ont consulté

Récemment, en réponse aux besoins de développement de projets, j'ai besoin de créer une fonction de case à cocher de sélection totale.

Oups~~ N'est-ce pas une chose très simple ? Il y a une case à cocher générale et N sous-cases à cocher Une fois la case à cocher générale cochée, toutes les sous-cases à cocher sont cochées. sélectionnée, les sous-cases ne sont pas sélectionnées.

Après avoir reçu cette petite demande, j'étais secrètement heureux. Quelle fonction simple, OK, cela sera fait en deux minutes~~~

Le temps passait de minute en seconde, et mon cœur faisait des courses. Le nombre de chevaux dans les prairies a progressivement augmenté jusqu'à atteindre des dizaines de millions ~~~

Qu'est-ce qui se passe ?
alert($("#checkbox_all").attr("checked"));
Toujours indéfini ?


Nani ? ? ?

Pourquoi cela se produit-il ? ? Navigateur, tu es stupide ? Changez ensuite de manière décisive les navigateurs pour les tests, de Chrome à IE et d'IE à Firefox. Le résultat est comme ceci -_-||

Est-ce parce que jquery a encore été amélioré ? ? ? ?

Après que Ben Diaosi ait utilisé le télescope Hubble et un microscope électronique laser haute définition pour vérifier, nous avons finalement trouvé l'indice. . . .

Il s'avère que cela a été modifié dans la version 1.6 de jquery :

[L'attribut vérifié a été initialisé lors de l'initialisation de la page et ne changera pas avec le statut Et changer.

C'est-à-dire que si la case est cochée après le chargement de la page, la valeur renvoyée sera toujours cochée (la mienne n'était pas sélectionnée au début)

Si elle n'est pas sélectionnée au le début, il sera restitué est toujours indéfini ! 】


Puisque jquery a apporté des modifications à cela, il doit y avoir une solution correspondante et meilleure :

.prop() est un outil puissant pour résoudre ce problème !

L'utilisation spécifique est la suivante :

alert($("#checkbox_all").prop("checked"));
deviendra vrai à cette fois Ou faux~~


Ainsi, le code de ce diaosi a été modifié comme suit :

#check_all est la case à cocher totale pour toutes les sélections, #check_children est le sous- case à cocher

Copier le code Le code est le suivant :

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

ou :
Copier le code Le code est le suivant :
$("#check_all").change(function(){
var is_checked = $(this) .prop("checked");
$('.check_children').prop("checked",
});

Cependant, j'aime toujours l'utiliser. La première méthode, moins il y a de code, mieux c'est~~écrivez moins, faites plus

C'est très pratique pour résoudre le problème de tout sélectionner~~~ !
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal