Specs假设文档节点满足 HTMLElement IDL 接口(interface)。其计算结果为true
:
document.querySelectorAll('a')[0] instanceof HTMLElement
这是正确的测试方法吗(通过 instanceof HTMLElement
)?
最佳答案
我不太确定为什么你想这样做,但它应该可以在现代浏览器中工作。它不适用于 IE8 或更低版本。
如果您的目标是查看节点是元素节点还是文本节点或类似节点,则更广泛兼容的方法是使用 nodeType
property :
document.querySelector('a').nodeType === 1
这些类型由 DOM 规范作为 Node
interface 定义的一部分给出。 (1 = 元素)。
如果您的目标是测试某个元素是否是特定类型元素(HTMLAnchorElement
等),请使用 nodeName
或(如果您知道它是一个元素)tagName
。在 HTML(不是 XHTML)文档中,这些是大写的标签名称,例如
console.log(document.querySelector('a').nodeName); // "A"
关于javascript - 如何检查 JS 对象是否实现了某个 DOM IDL 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25185059/