Loading

共同父节点Dom查找

共同父节点节点Dom查找

要求:查找两个节点的最近的一个共同父节点,可以包括节点自身
题目:
function commonParentNode () {
        var parent = document.createElement('DIV');
        var a = document.createElement('DIV');
        var b = document.createElement('DIV'); parent.appendChild(a); parent.appendChild(b);
        var c = commonParentNode(a, b); return c === parent; }

实现:
function commonParentNode(Node1, Node2) {
    if(Node1.contains(Node2)) {
    //如果有包含关系,就返回Node1
        return Node1
    }else {
    //没有包含关系就自调用(算是一个小递归了)
        return commonParentNode(Node1.parentNode, Node2)
    }
}
总结:
	一方面要想高效的进行查找比对,离不开contain方法的使用(限于DOM如果是数组的包含用indexof),另一方面可以通过递归也可以大幅的简化代码。
contain()方法:
contain(A.contains(B))//
数组的包含:
var Arrays = ['11','22','33'];
var Array ='11';
if(Arrays.indexOf(Array) >= 0) {
alert('Arrays中包含Array');
}
posted @ 2021-05-26 20:56  大黄树  阅读(170)  评论(0)    收藏  举报