localizando o tipo de um elemento usando jQuery


345

No jQuery, se eu tenho uma referência a um elemento, como posso determinar que tipo de elemento é, por exemplo, uma entrada ou uma lista suspensa? Existe alguma maneira de descobrir?

Duplicado:

Como posso determinar o tipo de elemento correspondente no jQuery?



10
Pode ser uma duplicata, mas tem uma resposta melhor e a outra está mal marcada.
Rumpleteaser

2
@Rumpleteaser Se "o outro" está mal marcado, por que você não usa o editbotão abaixo dele e o marca perfeitamente?
Trejder

Respostas:


615

O seguinte retornará true se o elemento for uma entrada:

$("#elementId").is("input") 

ou você pode usar o seguinte para obter o nome da tag:

$("#elementId").get(0).tagName

59
Ao usar $ ("# elementId"). Get (0) .tagName a tagName estará em todas as maiúsculas - TR, DIV etc etc #
Jarede 18/12/12

7
ok, então a propriedade tagName retorna um valor com todas as letras maiúsculas, eu apenas fiz um .toLowerCase()nele
#

9
var elementType = $(this).prop('tagName');
Damodar Bashyal

5
O uso nodeNamepode ser mais consistente em diferentes navegadores: stackoverflow.com/questions/4878484/…
Nathan Jones

2
Observe que esse uso $("#elementId").is(":input")geralmente indica se você está lidando com qualquer tipo de elemento de formulário, sem verificar seu tipo específico ( referência ).
Trejder

12

Você pode usar .prop () com tagNamecomo o nome da propriedade que você deseja obter:

$("#elementId").prop('tagName'); 

4

Vale a pena notar que a segunda resposta de @ Marius poderia ser usada como solução Javascript pura.

document.getElementById('elementId').tagName
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.