共同父节点节点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');
}