javascript - 如何使用嵌套列表中的列表项找到最深的 ul/ol
问题描述
我正在尝试清理由另一个创建了不必要的嵌套列表的程序生成的项目符号列表。我需要删除它们。这里有2个例子...
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<ul>
<ul>
<li>
<ul>
<li>List Item 1</li>
<li>List Item 2</li>
</ul>
</li>
</ul>
</ul>
<ul>
<li>
<ul>
<li>
<ul>
<li>
<ol>
Prep Steps
<li>Step 1</li>
<li>Step 2</li>
<li>Step 3</li>
</ol>
<ul>
Other things to note
<li>Another LI 1</li>
<li>Another LI 2</li>
<li>Another LI 3</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</body>
</html>
我需要找到具有有效列表项上下文(任何文本)的 ul/ol 并删除围绕它们的所有无关 ul。为此,我试图找到具有列表项的最深 ul。我尝试了一些选择器$("ul:has(li)")
,但是这也返回了所有父 uls。
解决方案
尝试这个:
$('ul,ol').not(':has(ul,ol)')
$('ul,ol').not(':has(ul,ol)').each((index,list) => console.log(list));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<ul>
<li>
<ul>
<li>List Item 1</li>
<li>List Item 2</li>
</ul>
</li>
</ul>
</ul>
<ul>
<li>
<ul>
<li>
<ul>
<li>
<ol>
<li>Another LI 1</li>
<li>Another LI 2</li>
<li>Another LI 3</li>
</ol>
</li>
</ul>
</li>
</ul>
</li>
</ul>
推荐阅读
- python - Azure 表单识别器撰写模型错误
- python - librosa 如何估计节奏?这是一个错误还是我错过了什么
- excel - 强制excel单元格跟随另一个单元格的位置
- javascript - 如何使下拉菜单选项可操作?
- javascript - 如何在这个 div 元素上输入?
- ios - 通过 Expo 响应本机应用程序,获取 firestore 权限错误:
- oracle - 更新数据库记录时自动收到通知
- reactjs - 如何让我的函数等到用户数据在我的 useContext 提供程序中更新?
- scrapy - Scrapy奇怪的输出,但适用于curl
- python - 如何查看 python 3.9 的数学函数的代码?