繁体   English   中英

select 父元素的子元素

[英]select child of parent element

I want to select one div with ('.nav-dropdown-content') class in parent with ('.nav-dropdown') class to add.active class on the that child look at my code my function doesn't work correctly我怎么能select那个孩子?

<div class="nav-item nav-dropdown">
  <a class="nav-link" href="#">Parent</a>
  <div class="nav-dropdown-content">
    <a class="dropdown-link" href="#">link</a>
    <a class="dropdown-link" href="#">link</a>
    <a class="dropdown-link" href="#">link</a>
    <a class="dropdown-link" href="#">link</a>
  </div>
</div>
var navDropDown = document.querySelectorAll('.nav-dropdown');
for (let i = 0 ; i < navDropDown.length ; i++) {
    navDropDown[i].addEventListener('click', () => {
        navDropDown[i].lastChild.addEventListener.classList.toggle('active');
    })
}

选择最后一个元素,附加一个监听器,切换 class

 document.querySelector('.nav-dropdown-content:last-child').addEventListener('click', (e) => { e.target.classList.toggle('active'); })
 .active { background: yellow; }
 <div class="nav-item nav-dropdown"> <a class="nav-link" href="#">Parent</a> <div class="nav-dropdown-content"> <a class="dropdown-link" href="#">link</a> <a class="dropdown-link" href="#">link</a> <a class="dropdown-link" href="#">link</a> <a class="dropdown-link" href="#">link</a> </div> </div>

你需要: navDropDown[i].lastElementChild.classList.toggle('active');

因此,您可以通过单击外部 DIV 来切换内部 DIV 与活动 class

 var navDropDown = document.querySelectorAll('.nav-dropdown'); for (let i = 0; i < navDropDown.length; i++) { navDropDown[i].addEventListener('click', () => { navDropDown[i].lastElementChild.classList.toggle('active'); }) }
 .active { background: yellow; }
 <div class="nav-item nav-dropdown"> <a class="nav-link" href="#">Parent</a> <div class="nav-dropdown-content"> <a class="dropdown-link" href="#">link</a> <a class="dropdown-link" href="#">link</a> <a class="dropdown-link" href="#">link</a> <a class="dropdown-link" href="#">link</a> </div> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM