查找一个节点是不是另外一个节点的后代
来源:互联网 发布:linux系统怎么样 编辑:程序博客网 时间:2024/05/17 02:42
var contains=(function(){ if(typeof document.documentElement.contains){ return function(refNode,otherNode){ return refNode.contains(otherNode); } }else if(typeof document.documentElement.compareDocumentPosition){ return function(refNode,otherNode){ return !!(refNode.compareDocumentPosition(otherNode) & 16) } }else{ return function(refNode,otherNode){ var node=otherNode.parentNode; do{ if(node===refNode){ return true; }else{ return; } }while(node!==null) } } })()
三个可能性,第一个是看浏览时支持contains方法,如果是的话就返回函数给变量作为它的值。
第二个也是一个检查两者关系的DOM方法,不过它返回的是一个关系的位掩码,
1 代表无关 2 代表给定的在参考的之前 4 给定的在参考之后 8给定的是参考的祖先 16给定的是参考的后代
我测试之后发现他会返回两个掩码比如说:
alert(!!(document.documentElement.compareDocumentPosition(document.body) & 16));
它返回的20 body即在HTML后面 也在是它的后代16+4等于20。 然后在进行按位与操作 和16比较 得出结果如果是非0 就说明成立了 在用两个逻辑操作符返回布尔值。
第三个就是两个方法都不支持,用循环来一级一级的查找。
0 0
- 查找一个节点是不是另外一个节点的后代
- 判断一个节点是不是另一个的节点的子节点;
- 【BST】判断节点r和s是不是一个为祖先,另一个为后代
- 查找两个节点的最近的一个共同父节点,可以包括节点自身
- 在一个链表中,查找倒数的第k个节点
- 在一个二叉排序树(BST)(left<right)中查找某个节点的后序节点
- java 二叉树(六)查找二叉树一个节点的双亲节点
- 记录一下另外一个,在棋盘上自动寻找最近的坐标节点的算法
- 当点击iframe 中 treeview 的某个节点时,重定向到另外一个页面
- 在无头单链表的一个节点前插入一个节点
- 重建RAC的一个节点
- 给定一个二叉树和其中的一个节点,求中序遍历这个节点的下一个节点
- Oracle RAC增加一个节点_3节点的实验
- Oracle RAC删除一个节点_3节点的实验
- 把一个节点的父节点重定为<b>元素
- 获取一个节点包括子节点的(以字符串形式)
- 打印二叉树中一个节点的所有祖先节点
- 在二叉树中找到一个节点的后继节点
- Android开发笔记---不同activity之间的数据传递
- javascript数组循环遍历之foreach
- JAVA BASE64 加密解密实现代码
- mysql 数据库参数配置
- Sublime text 2/3 中 Package Control 的安装与使用方法
- 查找一个节点是不是另外一个节点的后代
- Reverse Nodes in k-Group
- hdoj 1509 Windows Message Queue 【STL 优先队列】
- SAP CRM有哪些版本
- JNI Hook java层方法
- Web Service学习-CXF开发Web Service实例demo(一)
- UICollectionView中cell的border问题
- Code Blocks 集成 wxWidgets
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案