码迷,mamicode.com
首页 > 编程语言 > 详细

javascript中的元素包含判断

时间:2017-01-15 22:59:34      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:div   size   写法   com   位置   node   null   redo   element   

在实际开发中,很多时候需要知道某个节点是不是另一个节点的后代。很多浏览器提供了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;
    }
}

 

javascript中的元素包含判断

标签:div   size   写法   com   位置   node   null   redo   element   

原文地址:http://www.cnblogs.com/bobodeboke/p/6288016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!