这个问题已经在这里有一个答案:
- JavaScript的睿智的-你如何检查是否JavaScript对象是DOM对象? 32个回答
例如说我写的是被设计为接受多种参数类型的函数:
var overloaded = function (arg) {
if (is_dom_element(arg)) {
// Code for DOM Element argument...
}
};
什么是执行最好的办法is_dom_element
,使其工作在一个跨浏览器,相当准确的方法是什么?
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...
}
};
也许这一次在这里:
node instanceof HTMLElement
这应该在大多数浏览器。 否则,您必须鸭式它(如typeof x.nodeType != 'undefined'
)
关于什么
obj instanceof HTMLElement
文章来源: What's the best way to detect if a given Javascript object is a DOM Element? [duplicate]