Как лучше всего определить, является ли данный объект Javascript элементом DOM?[дубликат]
-
02-07-2019 - |
Вопрос
На этот вопрос уже есть ответ здесь:
Скажем, например, я писал функцию, предназначенную для приема нескольких типов аргументов:
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
Не связан с StackOverflow