什么是检测一个给定的Javascript对象是DOM元素的最佳方式? [重复](What'

2019-07-31 01:39发布

这个问题已经在这里有一个答案:

  • JavaScript的睿智的-你如何检查是否JavaScript对象是DOM对象? 32个回答

例如说我写的是被设计为接受多种参数类型的函数:

var overloaded = function (arg) {
    if (is_dom_element(arg)) {
        // Code for DOM Element argument...
    }
};

什么是执行最好的办法is_dom_element ,使其工作在一个跨浏览器,相当准确的方法是什么?

Answer 1:

jQuery的检查nodeType属性。 所以,你会:

var overloaded = function (arg) {
    if (arg.nodeType) {
        // Code for DOM Element argument...
    }
};

尽管这将检测所有DOM对象,不只是元素。 如果仅希望元素,这将是:

var overloaded = function (arg) {
    if (arg.nodeType && arg.nodeType == 1) {
        // Code for DOM Element argument...
    }
};


Answer 2:

也许这一次在这里:

node instanceof HTMLElement

这应该在大多数浏览器。 否则,您必须鸭式它(如typeof x.nodeType != 'undefined'



Answer 3:

关于什么

obj instanceof HTMLElement


文章来源: What's the best way to detect if a given Javascript object is a DOM Element? [duplicate]