Maison > interface Web > js tutoriel > le corps du texte

La différence entre attr() et prop() dans jQuery lors de la modification de l'attribut_jquery vérifié

WBOY
Libérer: 2016-05-16 16:41:37
original
1404 Les gens l'ont consulté

Lors de la création du bouton de sélection de la case à cocher, un problème est survenu. Utilisez l'instruction $.attr('checked',true) pour changer l'attribut de la case à cocher en coché. C'est la première fois dans le navigateur Chrome. Cela ne fonctionne pas après que le premier clic soit valide. IE8 n'a aucun problème.

Baidu a mis beaucoup de temps à découvrir que la raison est que les attributs du HTML sont divisés en attributs et propriétés. Appelons ces dernières propriétés pour l'instant.

L'attribut vérifié est divisé en attribut->vérifié et propriété->vrai, faux.

Pour une case à cocher, si vérifié="checked" n'est pas défini, le résultat de alert($.attr("checked")) n'est pas défini. S'il est défini, le résultat est vérifié. L'attribut ne change pas lorsque l'état de la case à cocher change.

Si prop($.attr("checked")) est utilisé, le résultat sera respectivement faux et vrai. La propriété change à mesure qu'elle change.

Donc, prop() doit être utilisé lors de la modification de l'attribut vérifié. prop() a été ajouté après jQuery 1.6.

Tableaux sur d'autres propriétés similaires sur Internet :

De plus, dans les versions antérieures à IE9, si la propriété n'est pas supprimée avant la suppression de l'élément DOM, utiliser la méthode .prop() pour définir la valeur de la propriété de l'élément DOM (sauf les types simples : nombre, chaîne, booléen ) provoquera une fuite de mémoire. Afin de définir en toute sécurité la valeur de l'objet DOM et d'éviter les fuites de mémoire, vous pouvez utiliser la méthode .data(). Je ne l'ai pas encore rencontré, je vais donc l'écrire ici.

É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