Node.compareDocumentPosition - Web API 接口参考 编辑
Node.compareDocumentPosition()
可以比较当前节点与任意文档中的另一个节点的位置关系。
返回值是一个具有以下值的位掩码:
常量名 | 十进制值 | 含义 |
---|---|---|
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 | 待定 |
语法
compareMask = node.compareDocumentPosition( otherNode )
参数
otherNode
- 用于比较位置的
Node
。
返回值
一个表示 Node
和 otherNode
在 Document
中关系的整数值。在一些场景下,可能设置了不止一位比特值。比如 otherNode
在文档中是靠前的且包含了 Node
, 那么DOCUMENT_POSITION_CONTAINS
和 DOCUMENT_POSITION_PRECEDING
位都会设置,所以结果会是 0x0A 即十进制下的 10。
例子
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
返回的是一个位掩码,所以必须再使用按位与运算符才能得到有意义的值.
注意第一条语句使用了带有参数 0 的 NodeList.item()
方法,它和 getElementsByTagName('head')[0] 是一样的。
规范
规范 | 状态 | 注释 |
DOM Node.compareDocumentPosition() | Living Standard | |
Document Object Model (DOM) Level 3 Core Specification Node.compareDocumentPosition() | Obsolete | Initial definition |
浏览器兼容性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.相关链接
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论