¿Cuál es la mejor manera de detectar si un determinado objeto Javascript es un Elemento de DOM?[duplicar]

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

  •  02-07-2019
  •  | 
  •  

Pregunta

Esta pregunta ya tiene una respuesta aquí:

Digamos, por ejemplo, yo estaba escribiendo una función que fue diseñado para aceptar varios tipos de argumento:

var overloaded = function (arg) {
    if (is_dom_element(arg)) {
        // Code for DOM Element argument...
    }
};

¿Cuál es la mejor forma de implementar is_dom_element lo que funciona en un cross-browser, bastante exactitud?

¿Fue útil?

Solución

jQuery comprueba la propiedad nodeType.Por lo tanto se tendría:

var overloaded = function (arg) {
    if (arg.nodeType) {
        // Code for DOM Element argument...
    }
};

Aunque esto sería detectar todos los objetos DOM, no sólo los elementos.Si desea que los elementos solo, que sería:

var overloaded = function (arg) {
    if (arg.nodeType && arg.nodeType == 1) {
        // Code for DOM Element argument...
    }
};

Otros consejos

Probablemente este de aquí:

node instanceof HTMLElement

Que debería funcionar en la mayoría de los navegadores.De lo contrario, usted tiene que pato-tipo (por ejemplo. typeof x.nodeType != 'undefined')

¿Qué acerca de

obj instanceof HTMLElement
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top