概述

比较当前节点与任意文档中的另一个节点的位置关系.

语法

node.compareDocumentPosition( otherNode ) 
  • node是要和otherNode比较位置的节点.
  • otherNode是被和node比较位置的节点.

返回值是otherNode节点和node节点的位置关系.

附注

如果otherNode节点和node节点是同一个节点,返回 0.

否则,返回值是一个具有以下值的位掩码:

常量名 十进制值 含义
DOCUMENT_POSITION_DISCONNECTED 1 不在同一文档中
DOCUMENT_POSITION_PRECEDING 2 otherNode在node之前
DOCUMENT_POSITION_FOLLOWING 4 otherNode在node之后
DOCUMENT_POSITION_CONTAINS 8 otherNode包含node
DOCUMENT_POSITION_CONTAINED_BY 16 otherNode被node包含
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 32 待定

例子

var head = document.getElementsByTagName('head').item(0);
if (head.compareDocumentPosition(document.body) & Node.DOCUMENT_POSITION_FOLLOWING) {
  console.log("well-formed document");
} else {
  console.log("<head> is not before <body>");
}

注: 因为compareDocumentPosition返回的是一个位掩码,所以必须再使用按位与运算符才能得到有意义的值.

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) 9.0+ (Yes) (Yes)
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) ? (Yes) (Yes)

规范

规范 状态s 注释
DOM Level 3 Recommendation  
DOM Standard Living standard  

相关链接

文档标签和贡献者

此页面的贡献者: teoli, cuixiping, jsx, ziyunfei
最后编辑者: cuixiping,