J'ai besoin d'un moyen de déterminer le type d'un élément HTML dans JavaScript. Il a l'ID, mais l'élément lui-même peut être un <div>
, un <form>
champ, un <fieldset>
, etc. Comment puis-je y parvenir?
J'ai besoin d'un moyen de déterminer le type d'un élément HTML dans JavaScript. Il a l'ID, mais l'élément lui-même peut être un <div>
, un <form>
champ, un <fieldset>
, etc. Comment puis-je y parvenir?
Réponses:
nodeName
est l'attribut que vous recherchez. Par exemple:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
Notez que nodeName
renvoie le nom de l'élément en majuscule et sans les chevrons, ce qui signifie que si vous voulez vérifier si un élément est un <div>
élément, vous pouvez le faire comme suit:
elt.nodeName == "DIV"
Bien que cela ne vous donne pas les résultats escomptés:
elt.nodeName == "<div>"
if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
localName
?
Et quoi element.tagName
?
Voir également tagName
documentation sur MDN .
Vous pouvez utiliser l'inspection de code générique 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
Regardez ici pour une liste complète des interfaces.