首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQuery:如何从div中提取li项

JQuery:如何从div中提取li项
EN

Stack Overflow用户
提问于 2019-12-27 20:13:32
回答 2查看 277关注 0票数 0

我有以下div,其中包含一个无序列表和其他代码:

代码语言:javascript
运行
复制
<div id="myDiv">
    <ul>
       <div id="myInnerDiv">Here is a div</div>
       <li id="oneLi">One li</li>
       <script type="text/javascript">
           // some JS code
       </script>
       <li><span class="li-item">Some content 1</span></li>
       <li><span class="li-item">Some content 2</span></li>
       <li><span class="li-item">Some content 3</span></li>
    </ul>
</div>

我希望在<script>标记之后获得与最新的<li>项目相对应的超文本标记语言:

代码语言:javascript
运行
复制
<ul>
    <li><span class="li-item">Some content 1</span></li>
    <li><span class="li-item">Some content 2</span></li>
    <li><span class="li-item">Some content 3</span></li>
</ul>

或者仅仅是li项:

代码语言:javascript
运行
复制
<li><span class="li-item">Some content 1</span></li>
<li><span class="li-item">Some content 2</span></li>
<li><span class="li-item">Some content 3</span></li>

你知道如何使用jQuery实现这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-27 20:21:22

可以使用Next Siblings Selector (~)选择另一个元素后面的元素

您也可以使用.nextAll()来实现相同的功能- $('#myDiv script').nextAll('li')

我还使用了.clone()在返回的元素上安全地使用.wrapAll(''),而不影响DOM

代码语言:javascript
运行
复制
// Returns a jQuery object containing the three <li> items after script
// Then clone ( to leave DOM as is ) and wrap with <ul>
const $listElements = $('#myDiv script ~ li').clone().wrapAll('<ul>');

// Get HTML of <ul>
const listHTML = $listElements.parent().prop('outerHTML');
console.log(listHTML);

// Get HTML of just <li>
const itemHTML = $listElements.parent().html();
console.log(itemHTML);
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="myDiv">
  <ul>
    <div id=" myInnerDiv ">Here is a div</div>
    <li id="oneLi ">One li</li>
    <script type="text/javascript ">
      // some JS code
    </script>
    <li><span class="li-item ">Some content 1</span></li>
    <li><span class="li-item ">Some content 2</span></li>
    <li><span class="li-item ">Some content 3</span></li>
  </ul>
</div>

票数 4
EN

Stack Overflow用户

发布于 2019-12-27 20:23:18

假设您想要最新列表项的内容:

$("#myDiv ul li:last").text()

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59500680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档