我有一个节点,我注意到它是一个元素(来自调用node.previousSibling)。但是,我无法找到跨浏览器的JavaScript方式来访问Node constants上显示的MDC。
在所有浏览器中,但定义了IE Node.ELEMENT_NODE。我尝试使用节点的特定实例,例如:
e=$("#element_id")[0];
alert("ELEMENT_NODE: " + ELEMENT_NODE);
这在IE中也不起作用。那么IE的方式是什么呢?我是否只需要自己定义节点常量?
答案 0 :(得分:6)
Internet Explorer 8及更早版本不定义节点类型常量,因此您必须自己定义它们。此外,Internet Explorer 7及更早版本仅support types 1 and 3。
答案 1 :(得分:1)
定义节点常量[当它们不存在时]最简洁的方法是捕获尝试访问它们时生成的异常。
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;
}
throw true
行仅在Node
存在时执行,但Node.ELEMENT_NODE
不是预期值。
答案 2 :(得分:0)
alert(oNode.nodeType)
你会得到:
"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
等...