Disons 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... } };
Quelle est la meilleure façon de mettre en œuvre is_dom_element pour qu'il fonctionne dans un navigateur croisé, de manière assez précise?
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 des éléments. Si vous voulez des éléments simples, ce serait:
var overloaded = function (arg) { if (arg.nodeType && arg.nodeType == 1) { // Code for DOM Element argument... } };
Probablement celui-ci ici:
node instanceof HTMLElement
Cela devrait fonctionner dans la plupart des navigateurs. Sinon, vous devez le typeof x.nodeType != 'undefined'
(par exemple, typeof x.nodeType != 'undefined'
)
Qu'en est-il de
obj instanceof HTMLElement