Какой лучший способ определить, является ли данный объект Javascript элементом DOM?
Скажем, например, я писал функцию, предназначенную для приема нескольких типов аргументов:
var overloaded = function (arg) {
if (is_dom_element(arg)) {
// Code for DOM Element argument...
}
};
Какой лучший способ реализовать is_dom_element, чтобы он работал в кросс-браузере, довольно точным способом?
Ответы
Ответ 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...
}
};
Ответ 2
Возможно, это здесь:
node instanceof HTMLElement
Это должно работать в большинстве браузеров. В противном случае вам придется уткать (например, typeof x.nodeType != 'undefined'
)
Ответ 3
Что насчет
obj instanceof HTMLElement