Existe-t-il un moyen simple d'obtenir un nom de tag?
Par exemple, si on me donne $('a')
dans une fonction, je veux obtenir 'a'
.
Vous pouvez appeler .prop("tagName")
. Exemples:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Si écrire .prop("tagName")
est fastidieux, 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é. Si vous voulez que le nom de la balise retournée soit tout en minuscule, vous pouvez éditer 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"
Vous pouvez utiliser le DOM propriété nodeName
:
$(...)[0].nodeName
Depuis jQuery 1.6, vous devriez maintenant appeler prop:
$target.prop("tagName")
jQuery 1.6 +
jQuery('selector').prop("tagName").toLowerCase()
Anciennes versions
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase () n'est pas obligatoire.
C'est encore un autre moyen:
$('selector')[0].tagName
Vous devriez PAS utiliser jQuery('selector').attr("tagName").toLowerCase()
, car cela ne fonctionne que dans les anciennes versions de Jquery.
Vous pourriez utiliser $('selector').prop("tagName").toLowerCase()
si vous êtes certain d'utiliser une version de jQuery thats> = version 1.6.
Vous pensez peut-être que TOUT LE MONDE utilise jQuery 1.10+ ou quelque chose d'autre (janvier 2016), mais malheureusement, ce n'est pas vraiment le cas. Par exemple, beaucoup de gens utilisent encore Drupal 7, et chaque version officielle de Drupal 7 à ce jour inclut jQuery 1.4.4 par défaut.
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()