我有如下的 html 字符串(js 字符串)
<ol class="testClass">
<li>test1</li>
<li>testing2</li>
<li>testing3</li>
<li>testing4</li>
<li>testing5</li>
<li>testing6</li>
</ol>
我只需要 2 到 3 个列表项,并丢弃其余的(如下所示)
<ol class="testClass">
<li>test1</li>
<li>testing2</li>
<li>testing3</li>
</ol>
知道如何做到这一点吗?我可以使用 jQuery 返回 ol 的子集吗?或者有一个正则表达式吗?
编辑:
非常感谢您的回答。我有一个子问题(抱歉,我应该用原始问题来问这个问题)
我想只限制测试类对应的li(而不考虑删除testClass2下的li)。
<ol class="testClass">
<li>test1</li>
<li>testing2</li>
<li>testing3</li>
<ul class="testClass2">
<li>testing4</li>
<li>testing5</li>
</ul>
<li>testing6</li>
</ol>
我尝试过类似的方法
html.not('.testClass2').find("li:gt(3)").remove();
但仍在考虑内部元素
这似乎有效:
html.find("ol>li:gt(4)").remove();
最佳答案
您可以简单地将它们转换为 DOM 元素,并使用普通选择器。
听起来您只想附加前 3 个 li
元素,因此只需捕获 ul
的子元素,并在附加到页面之前对前 3 个进行切片.
$(my_string).children("li").slice(0, 3).appendTo("#target");
关于javascript - 如何从html中提取一些<li>(在ol/ul标签下)标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29043057/