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'
.
javascript
jquery
jquery-selectors
configurador
fonte
fonte
Respostas:
Você pode ligar
.prop("tagName")
. Exemplos:Se a gravação
.prop("tagName")
for entediante, você poderá criar uma função personalizada da seguinte maneira:Exemplos:
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:
Exemplos:
fonte
.prop
.toLowerCase()
outoUpperCase()
pode ser útil ao compararprop('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 :fonte
$(this).prop('tagname')
. this.nodeName geralmente é mais eficiente. 1A partir do jQuery 1.6, você deve chamar prop:
Consulte http://api.jquery.com/prop/
fonte
jQuery 1.6+
versões mais antigas
toLowerCase () não é obrigatório.
fonte
new String
?Esta é outra maneira:
fonte
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.Nota :
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 :
opção 2
fonte
nodeName fornecerá o nome da tag em maiúsculas, enquanto localName fornecerá a letra minúscula.
lhe dará: seu elemento em vez de YOURELEMENT
fonte