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

说例如,我正在写一功能目的是要接受多个参数种:

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

什么是最好的方式来实施 is_dom_element 因此,它的工作原理在跨浏览器,相当准确的方式?

有帮助吗?

解决方案

jQuery的检查类型的财产。所以你会有:

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top