encontrar el tipo de un elemento usando jQuery

345

En jQuery, si tengo una referencia a un elemento, ¿cómo puedo determinar qué tipo de elemento es, por ejemplo, una entrada o un menú desplegable? Existe alguna manera de averiguarlo?

Duplicar:

¿Cómo puedo determinar el tipo de elemento de un elemento coincidente en jQuery?

jyotishka bora
fuente
55
Duplicado: stackoverflow.com/questions/341900/…
Ólafur Waage
10
Puede ser un duplicado, pero tiene una mejor respuesta, y el otro está mal etiquetado.
Rumpleteaser
2
@Rumpleteaser Si "el otro" está mal etiquetado, ¿por qué no utiliza el editbotón que está debajo y lo etiqueta perfectamente?
trejder

Respuestas:

615

Lo siguiente devolverá verdadero si el elemento es una entrada:

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

o puede usar lo siguiente para obtener el nombre de la etiqueta:

$("#elementId").get(0).tagName
Mario
fuente
59
Al usar $ ("# elementId"). Get (0) .tagName, el tagName estará en mayúsculas: TR, DIV, etc., etc.
Jarede
77
bien, entonces la propiedad tagName devuelve un valor de mayúsculas, acabo de hacer una .toLowerCase()en él
pythonian29033
99
var elementType = $(this).prop('tagName');
Damodar Bashyal
55
El uso nodeNamepodría ser más consistente en diferentes navegadores: stackoverflow.com/questions/4878484/…
Nathan Jones
2
Tenga en cuenta que el uso $("#elementId").is(":input")generalmente le dirá, si está tratando con algún tipo de elemento de formulario, sin verificar su tipo específico ( referencia ).
trejder
12

Puede usar .prop () con tagNameel nombre de la propiedad que desea obtener:

$("#elementId").prop('tagName'); 
Resolución
fuente
4

Vale la pena señalar que la segunda respuesta de @ Marius podría usarse como una solución Javascript pura.

document.getElementById('elementId').tagName
Matas Vaitkevicius
fuente