判断一个节点是否是另一个元素的子节点

判断一个元素是否包含一个指定节点
这个函数时在contains()的基础上封装的,contains()不兼容火狐,特意封装了一下,以后方便用。
function isDOMContains(parentEle,ele,container){
    //parentEle: 要判断节点的父级节点
    //ele:要判断的子节点
    //container : 二者的父级节点
    
    //如果parentEle h和ele传的值一样,那么两个节点相同
    if(parentEle == ele){
        return true
    }
    if(!ele || !ele.nodeType || ele.nodeType != 1){
        return false;
    }
    //如果浏览器支持contains
    if(parentEle.contains){
        return parentEle.contains(ele)
    }
    //火狐支持
    if(parentEle.compareDocumentPosition){
        return !!(parentEle.compareDocumentPosition(ele)&16);
    }

    //获取ele的父节点
    var parEle = ele.parentNode;
    while(parEle && parEle != container){
       if(parEle == parentEle){
        return true;
       }
       parEle = parEle.parentNode;
    }
    return false;
}

转载于:https://www.cnblogs.com/rainbow8590/p/7182476.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值