Necesito una forma de determinar el tipo de elemento HTML en JavaScript. Tiene la ID, pero el elemento en sí podría ser un <div>
, un <form>
campo, un <fieldset>
, etc. ¿Cómo puedo lograr esto?
Necesito una forma de determinar el tipo de elemento HTML en JavaScript. Tiene la ID, pero el elemento en sí podría ser un <div>
, un <form>
campo, un <fieldset>
, etc. ¿Cómo puedo lograr esto?
Respuestas:
nodeName
es el atributo que estás buscando. Por ejemplo:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
Tenga en cuenta que nodeName
devuelve el nombre del elemento en mayúscula y sin los corchetes angulares, lo que significa que si desea verificar si un elemento es un <div>
elemento, puede hacerlo de la siguiente manera:
elt.nodeName == "DIV"
Si bien esto no le daría los resultados esperados:
elt.nodeName == "<div>"
if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
localName
?
¿Qué hay de element.tagName
?
Ver también tagName
documentos en MDN .
Puede usar la inspección de código genérico a través de instanceof
:
var e = document.getElementById('#my-element');
if (e instanceof HTMLInputElement) {} // <input>
elseif (e instanceof HTMLSelectElement) {} // <select>
elseif (e instanceof HTMLTextAreaElement) {} // <textarea>
elseif ( ... ) {} // any interface
Busque aquí una lista completa de interfaces.