Eu preciso de uma maneira de determinar o tipo de um elemento HTML em JavaScript. Ele possui o ID, mas o elemento em si pode ser a <div>
, um <form>
campo, um <fieldset>
etc. Como posso conseguir isso?
Eu preciso de uma maneira de determinar o tipo de um elemento HTML em JavaScript. Ele possui o ID, mas o elemento em si pode ser a <div>
, um <form>
campo, um <fieldset>
etc. Como posso conseguir isso?
Respostas:
nodeName
é o atributo que você está procurando. Por exemplo:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
Observe que nodeName
retorna o nome do elemento em maiúsculas e sem os colchetes angulares, o que significa que, se você quiser verificar se um elemento é um <div>
elemento, poderá fazê-lo da seguinte maneira:
elt.nodeName == "DIV"
Embora isso não lhe dê os resultados esperados:
elt.nodeName == "<div>"
if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
localName
?
Que tal element.tagName
?
Veja também tagName
documentos sobre o MDN .
Você pode usar a inspeção de código genérico via 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
Procure aqui uma lista completa de interfaces.