web-dev-qa-db-fra.com

jQuery: Obtenir le nom de balise d'élément sélectionné

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'.

610
configurator

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"
982
tilleryj

Vous pouvez utiliser le DOM propriété nodeName :

$(...)[0].nodeName
95
SLaks

Depuis jQuery 1.6, vous devriez maintenant appeler prop:

$target.prop("tagName")

Voir http://api.jquery.com/prop/

57
Rob

jQuery 1.6 +

jQuery('selector').prop("tagName").toLowerCase()

Anciennes versions

jQuery('selector').attr("tagName").toLowerCase()

toLowerCase () n'est pas obligatoire.

44
Dayron Gallardo

C'est encore un autre moyen:

$('selector')[0].tagName
22
Chepech

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.


Remarque :

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()
10
John Slegers