例如,我正在编写一个旨在接受多种参数类型的函数:
var overloaded = function (arg) {
if (is_dom_element(arg)) {
// Code for DOM Element argument...
}
};
实现is_dom_element
它以跨浏览器、相当准确的方式工作的最佳方法是什么?
例如,我正在编写一个旨在接受多种参数类型的函数:
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