Qual é a melhor maneira de detectar se um determinado objeto Javascript é um elemento DOM? [duplicado]
-
02-07-2019 - |
Pergunta
Esta questão já tem uma resposta aqui:
Say por exemplo, eu estava escrevendo uma função que foi projetado para aceitar vários tipos de argumentos:
var overloaded = function (arg) {
if (is_dom_element(arg)) {
// Code for DOM Element argument...
}
};
Qual é a melhor maneira de implementar is_dom_element
para que ele funcione em um cross-browser, maneira bastante precisa?
Solução
jQuery verifica a propriedade nodeType. Então você teria que:
var overloaded = function (arg) {
if (arg.nodeType) {
// Code for DOM Element argument...
}
};
Embora isso possa detectar todos os objetos DOM, e não apenas elementos. Se você quer elementos sozinho, que seria:
var overloaded = function (arg) {
if (arg.nodeType && arg.nodeType == 1) {
// Code for DOM Element argument...
}
};
Outras dicas
Provavelmente este aqui:
node instanceof HTMLElement
Isso deve funcionar na maioria dos navegadores. Caso contrário, você tem que abaixar-type-lo (por exemplo. typeof x.nodeType != 'undefined'
)
E
obj instanceof HTMLElement
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow