zoukankan      html  css  js  c++  java
  • javascript中的元素包含判断

    在实际开发中,很多时候需要知道某个节点是不是另一个节点的后代。很多浏览器提供了contains方法,如:

    console.log(document.documentElement.contains(document.body));//输入ture

    DOM3提供的compareDocumentPosition方法也可以判断元素位置关系,结果如下:

    1  无关

    2  居前

    4  居后

    8  包含

    16  被包含

    因此跨浏览器的contains写法如下:

    function contains(refNode,otherNode){
        if(typeof refNode.contains ==='function'){
            return refNode.contains(otherNode);
        }else if(typeof refNode.compareDocumentPosition ==='function'){
            return !!(refNode.compareDocumentPosition(otherNode)&16);
        }else{
            var node=otherNode.parentNode;
            do{
                if(node===refNode){
                    return true;
                }
            }while(parentNode!=null);
            return false;
        }
    }
  • 相关阅读:
    函数
    文件处理及处理模式
    字符编码
    元组,字典和集合的用法
    数字类型、字符串和列表
    计算机硬件介绍
    数据类型及语法介绍
    初识python
    设计模式
    最近的时候
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/6288016.html
Copyright © 2011-2022 走看看