253 votes

Sélectionnez les éléments de l’attribut avec JQuery

J'ai une collection de cases à cocher avec des identifiants générés et certains d'entre eux ont un attribut supplémentaire. Est-il possible d'utiliser JQuery pour vérifier si un élément a un attribut spécifique? Par exemple, puis-je vérifier si l'élément suivant a l'attribut "myattr"? La valeur de l'attribut peut varier.

 <input type="checkbox" id="A" myattr="val_attr">A</input>
 

Merci pour toutes les réponses. Par exemple comment puis-je obtenir une collection de toutes les cases qui ont cet attribut sans les vérifier une par une? Est-ce possible?

370voto

Stefan Gehrig Points 47227
 if ($('#A').attr('myattr')) {
    // attribute exists
} else {
    // attribute does not exist
}
 

MODIFIER:

Ce qui précède tombera dans le else -branch quand myattr existe mais est une chaîne vide ou "0". Si c'est un problème, vous devriez tester explicitement sur undefined :

 if ($('#A').attr('myattr') !== undefined) {
    // attribute exists
} else {
    // attribute does not exist
}
 

192voto

cletus Points 276888

Voulez-vous dire pouvez-vous les sélectionner? Si oui, alors oui:

 $(":checkbox[myattr]")
 

166voto

Jonathan Bergeron Points 1483

Je sais que cela fait longtemps que la question n'a pas été posée, mais j'ai trouvé le chèque plus clair comme ceci:

 if ($("#A").is('[myattr]')) {
    // attribute exists
} else {
    // attribute does not exist
}
 

(Comme trouvé sur ce site ici )

La documentation sur est peut être trouvé ici

10voto

powermikee Points 31

Cela fonctionnera:

 $('#A')[0].hasAttribute('myattr');
 

8voto

bamccaig Points 420

En JavaScript,...

null == undefined

...les retours true*. C'est la différence entre == et ===. Aussi, le nom de l' undefined peuvent être définis (ce n'est pas un mot-clé comme null est) de sorte que vous feriez mieux de vérifier d'une autre façon. Le moyen le plus fiable est sans doute pour comparer la valeur de retour de l' typeof de l'opérateur.

typeof o == "undefined"

Néanmoins, en comparant la valeur null devrait fonctionner dans ce cas.

* En supposant undefined est en fait pas défini.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X