检测给定Javascript对象是否为DOM元素的最佳方法如下:
typeof
操作符确定对象是null
、undefined
、boolean
、number
、string
、symbol
或object
其中之一。这里我们可以排除null
和 undefined
选项,因为它们不是DOM元素。constructor
属性是否等于Node
,Document
或Window
类的实例。这些类都是DOM元素的基类,因此这个属性可以作为检测DOM元素的一种方法。Node
或Window
类实例的属性、方法来验证它是不是DOM元素。例如,可以使用 this.nodeType
属性来判断对象是否为Node
对象,也可以用this.nodeName
属性检查其名称。下面是更详细的使用typeof
、constructor
和比较属性/方法的方法:
方法1: typeof 操作符
const node = /* your JS object */;
if (typeof node === 'object' && node !== null && node !== undefined && constructor === Node) {
console.log('The object is a DOM element.');
}
方法2: constructor 属性测试
const node = /* your JS object */;
if (node.constructor === Node) {
console.log('The object is a DOM element.');
}
方法3: 对比 Node 或 Document 或 Window 类实例的属性、方法
const node = /* your JS object */;
if (node instanceof Node || node instanceof Document || node instanceof Window) {
console.log('The object is a DOM element.');
}
以上方法都可以有效的检测给定Javascript对象是否为DOM元素,推荐方法为第一种,通过typeof
和constructor
属性测试的方法。
领取专属 10元无门槛券
手把手带您无忧上云