我有一个类似HTML的广告-
<main>
<section>
<div class="parent">
<div class='level_1'>
<div class='level_2'>
<div class='level_3'>
<span class='click_here'></span>
</div><!--level 3-->
</div><!--level 2-->
</div> <!--level 1-->
</div> <!--parent-->
<section>
<section>
<!-- same as given above -->
<section>
<main>
请参阅类click_here
的span元素。因此,如果用户单击此span元素,我想通过Javascript具有类parent
来获取其grand父元素。
我知道访问e.parentElement.parentElement.parentElement.parentElement
之类的基本解决方案,但这不好,因为所单击的项目可能比示例中给出的内容更深层次。
通过使用Javascript,他们还有其他解决方案吗?
答案 0 :(得分:0)
您可以执行e.target.closest('.parent')
,以便您使用所需的选择器选择最接近的父级。
答案 1 :(得分:0)
您可以使用mouseEvent.target.closest('.parent');
来获取clicked元素中最接近的.parent
元素,这将适用于任何任意嵌套级别。示例:
let span = document.querySelector('span');
span.addEventListener('click', function(e) {
console.log(e.target.closest('.parent'));
});
span {
display: block;
width: 100px;
height: 100px;
background: tomato;
}
<main>
<section>
<div class="parent">
<div class='level_1'>
<div class='level_2'>
<div class='level_3'>
<span class='click_here'></span>
</div><!--level 3-->
</div><!--level 2-->
</div> <!--level 1-->
</div> <!--parent-->
<section>
<section>
<!-- same as given above -->
<section>
<main>