gpt4 book ai didi

javascript - 如何在
    中选择

转载 作者:太空宇宙 更新时间:2023-11-04 13:59:28 26 4
gpt4 key购买 nike

假设我的 html 结构为

ul
li //this one
ul
li
li
li
li //this one

我不想得到所有的 li。正如我评论的那样,我只想获得李的第一段。我该如何选择它们?

document.querySelectorAll("ul > li");

返回所有的 li

编辑:实际上这只是树的一个片段。
我无法将结构修改为添加类或 ID。我正在寻找一个答案来获取第一层 lis

的列表

最佳答案

您需要选择祖 parent 不是另一个列表项的所有 li 项。

:not(li) > * > li {}

这仅在标记中没有额外元素时才有效。

例如它会失败:

<ul>
<li>
<div>
<ul>
<li>

一种较慢但更可靠的方法是获取所有列表项,然后过滤掉具有列表项祖先的项。

var lis = document.getElementsByTagName('li');
var lis_without_li_ancestors = [];
for (var i = 0; i < lis.length; i++) {
var element = lis[i];
if (!has_li_ancestor(element)) {
lis_without_li_ancestors.push(element);
}
}

console.log(lis_without_li_ancestors);

function has_li_ancestor(element) {
var parent = element.parentNode;
if (parent.tagName.toLowerCase() === "body") {
return false;
} else if (parent.tagName.toLowerCase() === "li") {
return true;
} else {
return has_li_ancestor(parent);
}
}
<ul>
<li>
<ul>
<li>...
</ul>
</ul>

关于javascript - 如何在<ul>中选择<li>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44365082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com