Quel est le meilleur moyen de détecter si un objet Javascript donné est un élément DOM? [dupliquer]
-
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?
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