【发布时间】:2010-09-20 05:42:28
【问题描述】:
我需要一种方法来确定 JavaScript 中 HTML 元素的类型。它有 ID,但元素本身可能是 <div>、<form> 字段、<fieldset> 等。我该如何实现?
【问题讨论】:
标签: javascript dom
我需要一种方法来确定 JavaScript 中 HTML 元素的类型。它有 ID,但元素本身可能是 <div>、<form> 字段、<fieldset> 等。我该如何实现?
【问题讨论】:
标签: javascript dom
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 呢?
【讨论】:
您可以通过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
查看here 获取完整的接口列表。
【讨论】:
有时你想要element.constructor.name
document.createElement('div').constructor.name
// HTMLDivElement
document.createElement('a').constructor.name
// HTMLAnchorElement
document.createElement('foo').constructor.name
// HTMLUnknownElement
【讨论】: