首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery wrapAll ul li段落后

Jquery wrapAll ul li段落后
EN

Stack Overflow用户
提问于 2011-11-17 16:39:13
回答 1查看 781关注 0票数 1

我需要转换一下:

代码语言:javascript
复制
<div id="truc">
   <p>First</p>
      <li>Item one</li>
      <li>Item two</li>
      <li>Item three</li>

  <p>Second</p>
    <li>Item four</li>
    <li>Item five</li>
    <li>Item six</li>
</div>

如下所示:

代码语言:javascript
复制
<div id="truc">
   <p>First</p>
    <ul id="list1">
       <li>Item one</li>
       <li>Item two</li>
       <li>Item three</li>
    </ul>

   <p>Second</p>
    <ul id="list2">
       <li>Item four</li>
       <li>Item five</li>
       <li>Item six</li>
    </ul>
</div>

我尝试在jquery中使用wrapAll,大概是这样的:

代码语言:javascript
复制
$('#truc p~li').each(function() {
   $(this).wrapAll('<ul>');
});

如有任何建议,我们将不胜感激:)非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-17 16:46:06

对于此特定结构,您可以使用以下命令:

代码语言:javascript
复制
$('p', '#truc').each(function() {
    $(this).nextUntil('p').wrapAll('<ul>');
});

输出(demo):

代码语言:javascript
复制
<div id="truc">
   <p>First</p>
   <ul>
      <li>Item one</li>
      <li>Item two</li>
      <li>Item three</li>
   </ul>
   <p>Second</p>
   <ul>
      <li>Item four</li>
      <li>Item five</li>
      <li>Item six</li>
   </ul>
</div>

至于ID,您可以(demo):

代码语言:javascript
复制
$('p', '#truc').each(function(i) {
    $(this).nextUntil('p').wrapAll($('<ul>', {id: 'list' + (1 + i)}));
});

你最初方法的问题是:

代码语言:javascript
复制
$('#truc p~li').each(function() {
   $(this).wrapAll('<ul>');
});

选择器#truc p~li对所有<li>元素(而不是每个<p>元素的分组)进行数学运算,从而使用<ul>元素包装匹配(<li>元素)中的每一项。

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

https://stackoverflow.com/questions/8164220

复制
相关文章

相似问题

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