html 两个元素的最近的公共父元素
根据id查找,两个元素的最近的公共父元素
这里可以运用算法
DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metahttp-equiv="X-UA-Compatible"content="IE=edge">
<metaname="viewport"content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<div>
<div>div>
<div>
<div>div>
<div>
<div id="a">
div>
<div>div>
div>
<div id="b">
div>
div>
div>
<div>div>
body>
<script>
// function findNearestCommonParentNode(elementNode1, elementNode2){
// // code
// let id1 = elementNode1.id
// let id2 = elementNode2.id
// let find1 = elementNode1.querySelector('#'+id2)
// let find2 = elementNode2.querySelector('#'+id1)
// if(find1){
// return elementNode1
// }else if(find2){
// return elementNode2
// }
// let parent = elementNode1.parentElement
// while(!parent.querySelector('#'+id2)){
// parent = parent.parentElement
// }
// return parent
// }
function findNearestCommonParentNode(elementNode1, elementNode2){
let node1 = elementNode1
let node2 = elementNode2
while(node1 != node2){
node1 = (node1.parentElement.tagName.toLowerCase() === 'body') ? elementNode2 : node1.parentElement
node2 = (node2.parentElement.tagName.toLowerCase() === 'body') ? elementNode1 : node2.parentElement
}
return node1
}
console.log(findNearestCommonParentNode(document.querySelector('#a'), document.querySelector('#b')));
script>
html>