【发布时间】:2021-12-25 21:57:56
【问题描述】:
如何使用带有document.querySelectorAll 的变量来选择所有直接<li> 子元素。我想选择main-navigation > ul元素的直接<li>标签,并给出红色边框。我知道它可以使用let firstLevelLi = document.querySelectorAll(".main-navigation > ul > li"); 修复。但我正在寻找如下变量的解决方案。
let parent = document.querySelector(".main-navigation > ul");
let li = document.querySelectorAll("`${parent}` > ul > li");
我需要它与 OOP 函数一起使用。我没有在这里提到我的 OOP 代码,因为它可能会让每个人感到困惑。这就是为什么我这样减少它以解决核心问题。我的代码如下。希望任何人都可以帮助我。提前致谢!
let parent = document.querySelector(".main-navigation > ul");
let li = document.querySelectorAll("`${parent}` > ul > li");
li.forEach((el)=>{
el.style.border="2px solid red";
});
ul {list-style:none;padding:0;margin:0;font-family:arial;}
ul ul {padding-left:1rem;}
li {padding:.35rem;}
<div class="main-navigation">
<ul>
<li><a href="">Home</a></li>
<li><a href="">About +</a>
<ul>
<li><a href="#">Vision</a></li>
<li><a href="#">Mission</a></li>
</ul>
</li>
<li><a href="">Contact</a></li>
</ul>
</div>
【问题讨论】:
-
你的意思是
let li = parent.querySelectorAll("ul > li");
标签: javascript html-lists parent-child queryselector