练习2-节点比对

2021-03-03  本文已影响0人  王二麻子88

题目
查找两个节点的最近的一个共同父节点,可以包括节点自身

代码实现

  function commonParentNode(oNode1, oNode2) {
  let parentNode1 = oNode1.parentNode;
  let parentNode2 = oNode2.parentNode;
  while(true) {
    // 循环比对 节点
    // 比对成功之后 用break打断循环, 一直两者具有想用的父节点, 因此循环一定能打破
    // 比对失败之后取当前节点的父节点继续进行比对
    if (parentNode1.contains(oNode2)) {
      return parentNode1;
    } else if (parentNode1.contains(parentNode2)) {
      return parentNode1;
    } else{
      parentNode1 = parentNode1.parentNode;
    }

    if (parentNode2.contains(oNode1)) {
      return parentNode2;
    } else if (parentNode2.contains(parentNode1)) {
      return parentNode2;
    } else {
      parentNode2 = parentNode2.parentNode;
    }
  }
}
上一篇 下一篇

猜你喜欢

热点阅读