Как лучше всего определить, является ли данный объект Javascript элементом DOM?[дубликат]

StackOverflow https://stackoverflow.com/questions/120262

  •  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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top