zoukankan      html  css  js  c++  java
  • dom 节点查找

    题目描述

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

    输入描述:

    oNode1 和 oNode2 在同一文档中,且不会为相同的节点。

    代码:

     1 //方法一
     2 //oNode.contains(oNode2):   父节点oNode(或自己)包含子节点oNode2,返回true
     3 //这个方法比递归的方法效率要高
     4 function commonParentNode(oNode1, oNode2) {
     5     while(oNode1){
     6         if(oNode1.contains(oNode2)){
     7             return oNode1;
     8         }
     9         oNode1 = oNode1.parentNode;
    10     }
    11 }
    12 
    13 //方法二:递归
    14 function commonParentNode(oNode1, oNode2) {
    15     if(oNode1.contains(oNode2)){
    16         return oNode1;
    17     }
    18     else {
    19         return commonParentNode(oNode1.parentNode,oNode2);
    20     }
    21 }
    22 
    23 //方法三:比较父节点
    24 function commonParentNode(oNode1, oNode2) {
    25     //取oNode1的父节点
    26     var parent1=[];
    27     parent1.push(oNode1);
    28     while(oNode1.parentNode){
    29         parent1.push(oNode1.parentNode);
    30         oNode1 = oNode1.parentNode;
    31     }
    32      //取oNode2的父节点
    33     var parent2=[];
    34     parent2.push(oNode2);
    35     while(oNode2.parentNode){
    36         parent2.push(oNode2.parentNode);
    37         oNode2 = oNode2.parentNode;
    38     }
    39     //比较
    40     var i = 0 , j =0;
    41     while(i<parent1.length){
    42         j = 0;
    43         oNode1 = parent1[i++];
    44         while(j<parent2.length){
    45             if(oNode1 == parent2[j++]){
    46                 return oNode1;
    47             }
    48         }
    49     }
    50     return null
    51 }
  • 相关阅读:
    502 bad gateway错误的网关
    nodejs发展
    edgejs
    websocket nodejs实例
    nodejs原码
    node案例
    node 与php整合
    node c#
    jquery
    express
  • 原文地址:https://www.cnblogs.com/daheiylx/p/8970731.html
Copyright © 2011-2022 走看看