Existe uma maneira fácil de obter um nome de tag?
Por exemplo, se eu for designado $('a')
para uma função, quero obter 'a'
.
Existe uma maneira fácil de obter um nome de tag?
Por exemplo, se eu for designado $('a')
para uma função, quero obter 'a'
.
Respostas:
Você pode ligar .prop("tagName")
. Exemplos:
jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"
Se a gravação .prop("tagName")
for entediante, você poderá criar uma função personalizada da seguinte maneira:
jQuery.fn.tagName = function() {
return this.prop("tagName");
};
Exemplos:
jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"
Observe que os nomes das tags são, por convenção, retornados em maiúsculas . Se você quiser que o nome da tag retornado esteja em letras minúsculas, é possível editar a função personalizada da seguinte forma:
jQuery.fn.tagNameLowerCase = function() {
return this.prop("tagName").toLowerCase();
};
Exemplos:
jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"
.prop
.
toLowerCase()
ou toUpperCase()
pode ser útil ao comparar prop('tagName')
resultado com um nome de tag. if($("my_selector").prop("tagName").toLowerCase() == 'div')
ouif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
Você pode usar a nodeName
propriedade do DOM :
$(...)[0].nodeName
$(this).prop('tagname')
. this.nodeName geralmente é mais eficiente. 1
A partir do jQuery 1.6, você deve chamar prop:
$target.prop("tagName")
Consulte http://api.jquery.com/prop/
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
versões mais antigas
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase () não é obrigatório.
new String
?
Você NÃO deve usar jQuery('selector').attr("tagName").toLowerCase()
, porque ele funciona apenas em versões mais antigas do Jquery.
Você pode usar $('selector').prop("tagName").toLowerCase()
se tiver certeza de que está usando uma versão do jQuery que é> = versão 1.6.
Você pode pensar que TODOS já estão usando o jQuery 1.10+ ou algo assim (janeiro de 2016), mas infelizmente esse não é realmente o caso. Por exemplo, muitas pessoas hoje ainda estão usando o Drupal 7, e toda versão oficial do Drupal 7 até hoje inclui o jQuery 1.4.4 por padrão.
Portanto, se você não souber ao certo se o seu projeto usará o jQuery 1.6+, considere usar uma das opções que funcionam para TODAS as versões do jQuery:
Opção 1 :
jQuery('selector')[0].tagName.toLowerCase()
opção 2
jQuery('selector')[0].nodeName.toLowerCase()