Existe-t-il un moyen simple d'obtenir un nom de tag?
Par exemple, si on me donne $('a')
une fonction, je veux l'obtenir 'a'
.
Existe-t-il un moyen simple d'obtenir un nom de tag?
Par exemple, si on me donne $('a')
une fonction, je veux l'obtenir 'a'
.
Réponses:
Vous pouvez appeler .prop("tagName")
. Exemples:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Si l'écriture .prop("tagName")
est fastidieuse, vous pouvez créer une fonction personnalisée comme ceci:
jQuery.fn.tagName = function() {
return this.prop("tagName");
};
Exemples:
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
Notez que les noms de balises sont, par convention, retournés CAPITALISÉS . Si vous souhaitez que le nom de balise renvoyé soit entièrement en minuscules, vous pouvez modifier la fonction personnalisée comme suit:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Exemples:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
.prop
.
toLowerCase()
ou toUpperCase()
peut être utile pour comparer le prop('tagName')
résultat à un nom de balise. if($("my_selector").prop("tagName").toLowerCase() == 'div')
ouif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
Vous pouvez utiliser la nodeName
propriété du DOM :
$(...)[0].nodeName
$(this).prop('tagname')
. this.nodeName est souvent plus efficace. +1
Depuis jQuery 1.6, vous devez maintenant appeler prop:
$target.prop("tagName")
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
Versions plus anciennes
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase () n'est pas obligatoire.
new String
?
Vous ne devez PAS l' utiliser jQuery('selector').attr("tagName").toLowerCase()
, car il ne fonctionne que dans les anciennes versions de Jquery.
Vous pouvez utiliser $('selector').prop("tagName").toLowerCase()
si vous êtes certain d'utiliser une version de jQuery qui est> = version 1.6.
Vous pensez peut-être que TOUT LE MONDE utilise jQuery 1.10+ ou quelque chose comme ça (janvier 2016), mais malheureusement ce n'est pas vraiment le cas. Par exemple, de nombreuses personnes utilisent encore Drupal 7 aujourd'hui, et chaque version officielle de Drupal 7 à ce jour inclut par défaut jQuery 1.4.4.
Donc, si vous ne savez pas avec certitude si votre projet utilisera jQuery 1.6+, envisagez d'utiliser l'une des options qui fonctionnent pour TOUTES les versions de jQuery:
Option 1 :
jQuery('selector')[0].tagName.toLowerCase()
Option 2
jQuery('selector')[0].nodeName.toLowerCase()