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…