有没有一种方法可以使用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');