语法:
compareValue=node.compareDocumentPosition(otherNode)
解释:返回的位置关系是otherNode相当于Node的
返回值,是整数值,取值包含:
- 0 节点一致
- 1 节点在不同文档 DOCUMENT_POSITION_DISCONNECTED
- 2 otherNode在节点node之前 DOCUMENT_POSITION_PRECEDING
- 4 otherNode在节点node之后 DOCUMENT_POSITION_FOLLOWING
- 8 otherNode包含节点node DOCUMENT_POSITION_CONTAINS
- 16 otherNode被节点node包含 DOCUMENT_POSITION_CONTAINED_BY
- 32 特殊节点的位置,依赖于dom实现
- 组合值:
- 如 2+8 otherNode在前面且包含node
- 实例:由于compareValue的值会出现累加现象,因此借助运算符按位与来判断位置关系,结果不是0即可。
- if(document.body.comparedocumentPosition(document.documentElement)&Node.DOCUMENT_POSITION_PRECEDING ){
- //document.documentElement在document.body前面
- }
- 实际开发中应与常量对比,可增强理解以及可读性。