Comment accéder aux constantes de type de nœud dans IE

J'ai un noeud que je note certainement est un élément (depuis l'appel de node.previousSibling). Cependant, j'ai du mal à trouver la manière javascript de navigateur croisé pour accéder aux constantes Node affichées sur le MDC .

Dans tous les navigateurs, mais IE Node.ELEMENT_NODE est défini. J'ai essayé d'utiliser une instance spécifique de nœud, par exemple:

e=$("#element_id")[0]; alert("ELEMENT_NODE: " + ELEMENT_NODE); 

Cela ne fonctionne pas non plus dans IE. Alors, quelle est la manière IE de faire cela? Dois-je simplement définir les constantes de nœud moi-même?

Internet Explorer 8 et versions antérieures ne définissent pas les constantes de type nœud, donc vous devriez les définir vous-même. En outre, Internet Explorer 7 et versions antérieures ne prennent en charge que les types 1 et 3 .

Le moyen le plus propre de définir les Constantes de Nœud [lorsqu'ils n'existent pas] est en attrapant l'exception générée lors de la tentative d'accès à celles-ci.

 try { if (Node.ELEMENT_NODE != 1) { throw true; } } catch(e) { document.Node = Node || {}; Node.ELEMENT_NODE = 1; Node.ATTRIBUTE_NODE = 2; Node.TEXT_NODE = 3; } 

La ligne throw true ne s'exécute que lorsque Node existe, mais Node.ELEMENT_NODE n'est pas la valeur attendue.

 alert(oNode.nodeType) 

Et vous obtiendrez:

 "1" for ELEMENT_NODE "2" for ATTRIBUTE_NODE "3" for TEXT_NODE "4" for CDATA_SECTION_NODE "5" for ENTITY_REFERENCE_NODE "6" for ENTITY_NODE 

etc…