C'è un modo semplice per ottenere un nome tag?
Ad esempio, se mi viene data $('a')
una funzione, voglio ottenere 'a'
.
C'è un modo semplice per ottenere un nome tag?
Ad esempio, se mi viene data $('a')
una funzione, voglio ottenere 'a'
.
Risposte:
Puoi chiamare .prop("tagName")
. Esempi:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Se scrivere .prop("tagName")
è noioso, puoi creare una funzione personalizzata in questo modo:
jQuery.fn.tagName = function() {
return this.prop("tagName");
};
Esempi:
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
Si noti che i nomi dei tag vengono, per convenzione, restituiti in MAIUSCOLO . Se vuoi che il nome del tag restituito sia tutto minuscolo, puoi modificare la funzione personalizzata in questo modo:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Esempi:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
.prop
.
toLowerCase()
o toUpperCase()
può essere utile quando si confronta il prop('tagName')
risultato con un nome di tag. if($("my_selector").prop("tagName").toLowerCase() == 'div')
oppureif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
Puoi usare la nodeName
proprietà del DOM :
$(...)[0].nodeName
$(this).prop('tagname')
. this.nodeName è spesso più efficiente. +1
A partire da jQuery 1.6 ora dovresti chiamare prop:
$target.prop("tagName")
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
Versioni precedenti
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase () non è obbligatorio.
new String
?
NON dovresti usare jQuery('selector').attr("tagName").toLowerCase()
, perché funziona solo con le versioni precedenti di Jquery.
È possibile utilizzare $('selector').prop("tagName").toLowerCase()
se si è certi di utilizzare una versione di jQuery che è> = versione 1.6.
Potresti pensare che TUTTI stiano usando jQuery 1.10+ o qualcosa del genere (gennaio 2016), ma sfortunatamente non è proprio così. Ad esempio, molte persone oggi usano ancora Drupal 7 e ogni versione ufficiale di Drupal 7 fino ad oggi include jQuery 1.4.4 per impostazione predefinita.
Quindi, se non sai con certezza se il tuo progetto utilizzerà jQuery 1.6+, puoi utilizzare una delle opzioni che funzionano con TUTTE le versioni di jQuery:
Opzione 1 :
jQuery('selector')[0].tagName.toLowerCase()
opzione 2
jQuery('selector')[0].nodeName.toLowerCase()