我需要一种在JavaScript中确定HTML元素类型的方法。它有ID,但元素本身可能是<div>
、<form>
字段、<fieldset>
等。我该如何实现这个功能?
我需要一种在JavaScript中确定HTML元素类型的方法。它有ID,但元素本身可能是<div>
、<form>
字段、<fieldset>
等。我该如何实现这个功能?
nodeName
是你要寻找的属性。例如:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
请注意:nodeName
返回元素名称的大写形式,不包括尖括号。这意味着如果您想检查一个元素是否为 <div>
元素,则可以按照以下方式进行:
elt.nodeName == "DIV"
虽然这样做不能给你预期的结果:
elt.nodeName == "<div>"
那么关于 element.tagName
呢?
还可以参考 MDN 上的 tagName
文档。
localName
。 - Mr ListernodeName
除了标签/元素之外,还提供属性、文本和注释节点的名称。我相信 localName
是来自 XML API 的。如果你知道你总是在处理一个元素,那么可能没有太大的区别,但 nodeName
是更通用的选项。 - bdukes您可以使用 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
if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
。 - Erik KoopmanslocalName
是什么? - bomba