Je peux vérifier si un élément a un attribut spécifique avec: Comment puis-je vérifier si un élément a un attribut? P> Merci P> p>
7 Réponses :
Si vous voulez voir si l'élément a un attribut particulier, faites-le simplement:
if ($('#something').is('[attribute]')) { // ... }
Je suis intéressé à voir si un élément a un attribut de tout aucun attribut n'est pas spécifique.
OK, mais le point est que ce que vous avez saisi dans votre exemple ci-dessus ne fonctionnera pas.
Cela peut également fonctionner avec de multiples attributs, juste une virgule séparée le sélecteur d'attributs dans la méthode "est" ".is (" [attribut], [attr2], [Att3] ")"
Vous auriez besoin d'utiliser des informations à partir de Obtenez tous les attributs d'un élément HTML avec JavaScript / JQuery P>
pas un code de jQuery entier mais cela fonctionnera
$("a").click( function () { if($("a").get(0).attributes > 0) alert("it has attributes"); })
Merci Tarik, je regarde ça
Voici une fonction qui détermine si l'un des éléments correspondant à un sélecteur a au moins un attribut: utilisation: p> Si vous souhaitez utiliser des éléments sélectionnés qui ont au moins un attribut, il est encore plus facile - vous créez un filtre personnalisé: p> que vous pouvez utiliser comme celui-ci: p > $(document).ready(function(){
$('li:hasAttributes').addClass('superImportant');
}
N'est-ce pas un peu trop: $ ("certains"). Obtenez (0) .attributes> 0 code> serait suffisant, je pense.
@Tarik - qui ne vérifie que le premier élément correspondant, lorsqu'il peut y avoir plusieurs correspondances.
@Jeff - Y a-t-il un moyen d'ajouter une classe sur les éléments ayant des attributs avec cette fonction? Merci encore
@Mircea - J'ai mis à jour ma réponse pour montrer comment vous pourriez faire cela, bien qu'il s'agisse de buggy dans IE 6 pour des raisons pour des raisons pour des raisons pour des raisons.
Mais ne demandait-il pas "comment puis-je vérifier si un élément a un attribut?". Donc, je pense que ça devrait être bien :) Donc, si un élément a plus de 0 attribut, il a au moins un attribut.
@Tarik - Désolé, je n'étais pas très clair la première fois. Vous avez raison que la question posée "Comment puis-je vérifier si un élément a un attribut?" Mais JQuery ne garantit pas qu'il retournerait un seul élément - il est toujours possible qu'il correspondra à zéro ou à plusieurs éléments, de sorte que la chose la plus sûre à faire est de les vérifier (ou aucun d'entre eux, car l'élément zéro peut exister) .
Voici une solution que j'ai trouvée plus fiable à savoir si un élément a défini des attributs qui fonctionnent dans IE, Chrome et Firefox:
$(selector).each(function(index, element) { if (element.hasAttributes) { // Some browser supports this method if (element.hasAttributes()) { return true; } } else { // IE counts many attributes - even if not set explicitly var attrs = element.attributes; for (var i = 0; i < attrs.length; i++) { if (attrs[i].specified) { return true; } } } return false; });
Je ne sais pas si vous souhaitez simplement retourner les éléments contenant l'attribut, mais si vous êtes, j'ai trouvé la méthode la plus facile comme suit: que Retournera l'objet JQuery pour inclure tous les éléments contenant l'attribut quelle que soit sa valeur. Par exemple. P> $(':text[maxlength]').addClass('has_max_length');
$("selector").get(0).hasAttributes("attributes");
Je me demande si JQuery offre quelque chose comme
$ ("# A [*]") code>?
@Naeem: Je pense que cela pourrait être une bonne fonctionnalité, mais comme il existe des moyens faciles de résoudre ce problème, je ne pense pas qu'ils puissent l'ajouter.