¿Hay una manera fácil de obtener un nombre de etiqueta?
Por ejemplo, si tengo $('a')
una función, quiero obtenerla 'a'
.
¿Hay una manera fácil de obtener un nombre de etiqueta?
Por ejemplo, si tengo $('a')
una función, quiero obtenerla 'a'
.
Respuestas:
Puede llamar .prop("tagName")
. Ejemplos:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Si escribir .prop("tagName")
es tedioso, puede crear una función personalizada como esta:
jQuery.fn.tagName = function() {
return this.prop("tagName");
};
Ejemplos:
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
Tenga en cuenta que los nombres de etiqueta son, por convención, devueltos CAPITALIZADOS . Si desea que el nombre de la etiqueta devuelta esté en minúsculas, puede editar la función personalizada de la siguiente manera:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Ejemplos:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
.prop
.
toLowerCase()
o toUpperCase()
puede ser útil al comparar el prop('tagName')
resultado con el nombre de una etiqueta. if($("my_selector").prop("tagName").toLowerCase() == 'div')
oif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
Puede usar la nodeName
propiedad del DOM :
$(...)[0].nodeName
$(this).prop('tagname')
. this.nodeName es a menudo más eficiente. +1
A partir de jQuery 1.6, ahora debe llamar a prop:
$target.prop("tagName")
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
versiones anteriores
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase () no es obligatorio.
new String
?
NO deberías usarjQuery('selector').attr("tagName").toLowerCase()
, porque solo funciona en versiones anteriores de Jquery.
Usted podría utilizar $('selector').prop("tagName").toLowerCase()
si está seguro de que está utilizando una versión de jQuery eso es> = versión 1.6.
Puede pensar que TODOS están usando jQuery 1.10+ o algo por el momento (enero de 2016), pero desafortunadamente ese no es realmente el caso. Por ejemplo, muchas personas hoy en día todavía usan Drupal 7, y cada versión oficial de Drupal 7 hasta el día de hoy incluye jQuery 1.4.4 de forma predeterminada.
Entonces, si no sabe con certeza si su proyecto usará jQuery 1.6+, considere usar una de las opciones que funcionan para TODAS las versiones de jQuery:
Opción 1 :
jQuery('selector')[0].tagName.toLowerCase()
opcion 2
jQuery('selector')[0].nodeName.toLowerCase()