我需要一种方法来确定 JavaScript 中 HTML 元素的类型。它有 ID,但元素本身可以是 a <div>
、<form>
字段、a<fieldset>
等。我怎样才能做到这一点?
如何确定 JavaScript 中 HTML 元素的类型?
IT技术
javascript
dom
2021-02-28 13:22:04
4个回答
nodeName
是您要查找的属性。例如:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
请注意,nodeName
返回大写且不带尖括号的元素名称,这意味着如果要检查元素是否为<div>
元素,可以按如下方式进行:
elt.nodeName == "DIV"
虽然这不会给你预期的结果:
elt.nodeName == "<div>"
怎么样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
看看这里的接口的完整列表。
有时你想要 element.constructor.name
document.createElement('div').constructor.name
// HTMLDivElement
document.createElement('a').constructor.name
// HTMLAnchorElement
document.createElement('foo').constructor.name
// HTMLUnknownElement