jquery如何实现给标签加一个父级标签?

<div class="term">
    <b>面积</b>
    <a>10</a>
    <a>20</a>
    <a>30</a>
    <a>40</a>
    <a>50</a>
    <b>体积</b>
    <a>10</a>
    <a>20</a>
    <a>30</a>
    <b>容积</b>
    <a>10</a>
    <a>20</a>
    <a>30</a>
    <a>40</a>
</div>

请问如何给上述代码中的a标签加一个父级标签,使之成为下述代码

<div class="term">
    <b>面积</b>
    <div>
        <a>10</a>
        <a>20</a>
        <a>30</a>
        <a>40</a>
        <a>50</a>
    </div>
    <b>体积</b>
    <div>
        <a>10</a>
        <a>20</a>
        <a>30</a>
    </div>
    <b>容积</b>
    <div>
        <a>10</a>
        <a>20</a>
        <a>30</a>
        <a>40</a>
    </div>
</div>

image

阅读 2.1k
2 个回答
$('.term b').each((i,item)=>{
   $(item).prevAll('a').wrapAll('<div></div>');
})
$('b').siblings('a').wrapAll('<div></div>')

//修正后代码
$('.term b').each((i,item)=>{
    $(item).nextUntil($('.term b').eq(i+1)).wrapAll('<div></div>');
})
// 选择所有 `b` 标签
// 借用数组的 reverse 方法将所选反序
// 然后遍历处理每个 `b` 标签
[].reverse.bind($('.term>b'))().each(function(index, item){
    var $this = $(item);
    
    // 选择当前元素后面的所有 `a` 标签
    var $afterB = $(item).nextAll('a');
    
    // 在当前元素后面插入一个 `div`,并将所选 `a` 标签添加至其中
    $this.after('div').append($afterB);
    
    // 移除既有 `a` 标签
    $afterB.remove();
});

步骤是这个步骤,能不能用就需要再调试调试了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题