Quel est le meilleur moyen de détecter si un objet Javascript donné est un élément DOM? [dupliquer]

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

  •  02-07-2019
  •  | 
  •  

Question

    

Cette question a déjà une réponse ici:

         

Dites par exemple que j'écrivais une fonction conçue pour accepter plusieurs types d'arguments:

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

Quel est le meilleur moyen d'implémenter is_dom_element pour qu'il fonctionne de manière assez précise sur plusieurs navigateurs?

Était-ce utile?

La solution

jQuery vérifie la propriété nodeType. Donc vous auriez:

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

Bien que cela détecte tous les objets DOM, pas seulement les éléments. Si vous voulez des éléments seuls, ce serait:

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

Autres conseils

Probablement celui-ci ici:

node instanceof HTMLElement

Cela devrait fonctionner dans la plupart des navigateurs. Sinon, vous devez le saisir (par exemple, type de x.nodeType! = 'Undefined' )

Qu'en est-il de

obj instanceof HTMLElement
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top