zoukankan      html  css  js  c++  java
  • 使用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);//20
    
    var after = pos & 2;//0
    console.log('html在body后面',!!after);
    
    var before = pos & 4;//4
    console.log('html在body前面',!!before);
    
    var inside = pos & 8;//0
    console.log('html在body内部',!!inside);
    
    var contain = pos & 16;//16
    console.log('html包含body',!!contain);
    博客已搬迁新址:ovaldi.github.io
  • 相关阅读:
    Unity NGUI实现技能CD效果
    Unity NGUI中Anchor的用法
    Unity 技能按钮触发特效
    Unity NGUI 图集Atlas制作
    Unity NGUI 创建简单的按钮
    Unity 地形
    Unity GUI编程
    Unity 随机数的使用
    linux命令之pssh命令
    MySQL中SQL语句2
  • 原文地址:https://www.cnblogs.com/Raoh/p/js_compareDocumentPosition_between_two_node.html
Copyright © 2011-2022 走看看