我有一个嵌套的无序列表,具有任意数量的级别.我希望能够从任何级别列表项元素访问顶级列表项元素.
加价
<ul class="list">
<li class="list-item">Level 1
<ul class="list">
<li class="list-item">Level 2
<ul class="list">
<li class="list-item">Level 3
<ul class="list">
<li class="list-item is-selected">Level 4</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
例如,如果我处于以下列表项元素级别:
<li class="list-item">Level 4</li>
个
我希望能够使用JavaScript访问以下列表项元素:
<li class="list-item">Level 1</li>
个
我try 了以下代码,但它不起作用:
const currentListItem = document.querySelector('.list-item.is-selected');
const parentUlElement = currentListItem.parentNode;
while (parentUlElement && !parentUlElement.classList.contains('list')) {
parentUlElement = parentUlElement.parentNode;
}
// This will select the `<li class="list-item">Level 1` element.
const levelOneListItem = parentUlElement;
const currentListItem = document.querySelector('.list-item.is-selected');
const parentUlElement = currentListItem.parentNode;
while (parentUlElement && !parentUlElement.classList.contains('list')) {
parentUlElement = parentUlElement.parentNode;
}
const levelOneListItem = parentUlElement;
currentListItem.addEventListener("click", () => {
console.log("levelOneListItem", levelOneListItem);
});
<ul class="list">
<li class="list-item">Level 1
<ul class="list">
<li class="list-item">Level 2
<ul class="list">
<li class="list-item">Level 3
<ul class="list">
<li class="list-item is-selected">Level 4</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
如何从任何级列表项访问顶级列表项元素
注:元素的TE级别不是固定的