Potrzebuję sposobu, aby określić typ elementu HTML w JavaScript. To ma identyfikator, ale sam element może być <div>, o <form>pole, <fieldset>itp jaki sposób można to osiągnąć?
Potrzebuję sposobu, aby określić typ elementu HTML w JavaScript. To ma identyfikator, ale sam element może być <div>, o <form>pole, <fieldset>itp jaki sposób można to osiągnąć?
Odpowiedzi:
nodeNameto atrybut, którego szukasz. Na przykład:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
Zwróć uwagę, że nodeNamezwraca nazwę elementu wielkimi literami i bez nawiasów kątowych, co oznacza, że jeśli chcesz sprawdzić, czy element jest <div>elementem, możesz to zrobić w następujący sposób:
elt.nodeName == "DIV"
Chociaż nie dałoby to oczekiwanych rezultatów:
elt.nodeName == "<div>"
if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
localName?
Co element.tagName?
Zobacz także tagNamedokumenty dotyczące MDN .
Możesz użyć ogólnej kontroli kodu poprzez 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
Zajrzyj tutaj, aby uzyskać pełną listę interfejsów.