首页 热点资讯 义务教育 高等教育 出国留学 考研考公

JavaScript:node里有parentNode,parenrNode里还有parentNode,如何递归写才能显得高大上呢=。=

发布网友 发布时间:2022-04-23 03:56

我来回答

1个回答

热心网友 时间:2023-10-14 00:55

// 高大上就不说了,你如果是要获取父节点的父节点,一定是第n个父节点的话就如下 
// 调用的时候, ParentTwo(document.getElementById("**"),0);
var nodeLen = 2;
function ParentTwo(myobj,i){
    var parent = myobj.parentNode;
    // 第 nodeLen 个父节点就跳出递归
    if(i==nodeLen){
        return parent;
    }else{
        return ParentTwo(parent,i+1);
    }
}
// 如果你要根据类型,获取父节点的话,就如下
// 调用的时候 ParentTop(document.getElement("**"),"TABLE");
// 其中 type 一定要大写
function ParentTop(myobj,type){
    if(myobj){
        var parent = myobj.parentNode;
        if(parent){
            // 使用 nodeName 获取控件类型,和你的 type 比较
            // 如果类型相同,则返回 parent,不同则递归
            // 当然,你要可以控制,当 nodeName=="body" 的时候,直接return你要的东西
            if(parent.nodeName==type){ 
                return parent;
            } else {
                return ParentTop(parent,type);
            }
        }
    }
    return null;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com