我需要一种方法来确定JavaScript中的HTML元素的类型。它有ID,但元素本身可以是<div>, <form> field, <fieldset>,等等。我怎样才能做到这一点呢?
当前回答
那么element。tagname呢?
请参见MDN上的tagName文档。
其他回答
有时你需要element。constructor。name
document.createElement('div').constructor.name
// HTMLDivElement
document.createElement('a').constructor.name
// HTMLAnchorElement
document.createElement('foo').constructor.name
// HTMLUnknownElement
你可以通过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
请查看这里的完整接口列表。
nodeName是您正在寻找的属性。例如:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
注意,nodeName返回的元素名称是大写的,不带尖括号,这意味着如果你想检查一个元素是否是<div>元素,你可以这样做:
elt.nodeName == "DIV"
虽然这不会给你预期的结果:
elt.nodeName == "<div>"
那么element。tagname呢?
请参见MDN上的tagName文档。