有没有一种方法可以使用JavaScript返回指定元素的顶部或第二个父元素?

有没有一种方法可以使用JavaScript返回指定元素的顶部或第二个父元素?,javascript,Javascript,我想获取myLIid的顶部父元素(部分) 我的HTML代码是: <section> <div> <ul> <li id="myLI">Coffee</li> <li>Tea</li> </ul> </div> </section> 我的代码返回UL,但我希望它返回部分如果您想按标记名定位

我想获取
myLI
id的顶部父元素(部分)

我的HTML代码是:

<section>
    <div>
        <ul>
          <li id="myLI">Coffee</li>
          <li>Tea</li>
        </ul>

    </div>
</section>

我的代码返回
UL
,但我希望它返回
部分

如果您想按标记名定位父标记名,可以使用如:

var x = document.getElementById("myLI").closest('section');
注意:查看浏览器兼容性部分

希望这有帮助

var x=document.getElementById(“myLI”).closest(“section”);
console.log(x.tagName)

    咖啡
var-topParent=document.getElementById(“myLI”);
而(topParent.parentElement.nodeName!=“BODY”){
topParent=topParent.parentElement;
}
console.log(topParent.nodeName)

    咖啡
“当用户单击单选按钮或某种类型的单击时,我可能会让它执行。”

然后只需在截面元素上设置单击事件:

var sections=Array.prototype.slice.call(document.querySelectorAll(“section”);
节。forEach(功能(节){
节.addEventListener(“单击”,函数(){
console.log(this.id);
});
});

    咖啡
    咖啡
    咖啡

你怎么知道
是最重要的?为什么
的父母不是最高层,或者祖父母,或者。。。?你是如何确定top的?你希望什么时候发生?如果是在单击(或与
li
相关的其他事件)时,您可以首先将事件挂接到
部分
。@JonathanM我知道该部分是最上面的,因为我想要两个元素up@ScottMarcus我可能会让它在用户单击单选按钮或某种类型的单击时执行。如果它总是向上三个元素,
li.parentElement.parentElement.parentElement
它是。是的,在body元素之前。这样做是否符合您的要求?还是不够?此代码不假设最顶层的父级是
是这是一个解决方案。谢谢
var x = document.getElementById("myLI").closest('section');