Мне нужен способ определить тип HTML-элемента в JavaScript. У него есть идентификатор, но сам элемент может быть a <div>
, <form>
полем, a <fieldset>
и т. Д. Как мне этого добиться?
Мне нужен способ определить тип HTML-элемента в JavaScript. У него есть идентификатор, но сам элемент может быть a <div>
, <form>
полем, a <fieldset>
и т. Д. Как мне этого добиться?
Ответы:
nodeName
это атрибут, который вы ищете. Например:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
Обратите внимание, что nodeName
возвращается имя элемента с заглавной буквы и без угловых скобок, что означает, что если вы хотите проверить, является ли элемент <div>
элементом, вы можете сделать это следующим образом:
elt.nodeName == "DIV"
Хотя это не даст вам ожидаемых результатов:
elt.nodeName == "<div>"
if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
localName
?
Как насчет element.tagName
?
Смотрите также tagName
документы по MDN .
Вы можете использовать проверку общего кода через 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
Посмотрите здесь полный список интерфейсов.