首页 > 网站 > WEB开发 > 正文

使用compareDocumentPosition比较两个元素在文档中的位置

2024-04-27 14:10:27
字体:
来源:转载
供稿:网友

使用compareDocumentPosition比较两个元素在文档中的位置

PS:尊重原创,转载请注明来自http://www.cnblogs.com/Raoh/p/js_compareDocumentPosition_between_two_node.html

使用compareDocumentPosition方法比较两个节点,将会返回描述它们在文档中位置的整数。

compareDocumentPosition的枚举值
二进制值枚举值位置信息
000000 0元素一致
000001 1没有关系,两个节点不属于同一个文档
000010 2节点 A 在节点 B 后面
000100 4节点 A 在节点 B 前面
001000 8节点 A 位于 节点 B 内部
010000 16节点 A 包含节点 B
100000 32没有关系,或是两个节点是同一元素的两个属性

拿到这个整数之后,通过一些位运算,我们就能得出元素位置的详细信息。(实际上,这与C#语言中的[Flags]一个道理)

直接上示例代码:

var doc = document,    html = doc.documentElement,    body = doc.body;var pos = html.compareDocumentPosition(body);//20var after = pos & 2;//0console.log('html在body后面',!!after);var before = pos & 4;//4console.log('html在body前面',!!before);var inside = pos & 8;//0console.log('html在body内部',!!inside);var contain = pos & 16;//16console.log('html包含body',!!contain);


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表