Ho bisogno di un modo per determinare il tipo di un elemento HTML in JavaScript. Ha l'ID, ma l'elemento stesso potrebbe essere un <div>, un <form>campo, un <fieldset>, ecc. Come posso ottenere questo?
Ho bisogno di un modo per determinare il tipo di un elemento HTML in JavaScript. Ha l'ID, ma l'elemento stesso potrebbe essere un <div>, un <form>campo, un <fieldset>, ecc. Come posso ottenere questo?
Risposte:
nodeNameè l'attributo che stai cercando. Per esempio:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
Si noti che nodeNamerestituisce il nome dell'elemento in maiuscolo e senza le parentesi angolari, il che significa che se si desidera verificare se un elemento è un <div>elemento, è possibile farlo come segue:
elt.nodeName == "DIV"
Anche se questo non ti darebbe i risultati attesi:
elt.nodeName == "<div>"
if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
localName?
Che dire element.tagName?
Vedi anche tagNamedocumenti su MDN .
È possibile utilizzare l'ispezione del codice generico tramite 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
Cerca qui un elenco completo di interfacce.