首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为cheerio或jquery中的多个元素包装到一个预定义的父元素?

如何为cheerio或jquery中的多个元素包装到一个预定义的父元素?
EN

Stack Overflow用户
提问于 2017-12-05 02:03:51
回答 2查看 237关注 0票数 0

我有一个类似的xml:

代码语言:javascript
运行
复制
<document>
   <paragraph>
      <a>
         <b>
            <c>
               <d>text1</d>
            </c>
         </b>
      </a>
   </paragraph>
   <paragraph>
      <a>
         <b>
            <c>
               <d>text2</d>
            </c>
         </b>
      </a>
   </paragraph>
</document>

显然还有更多的段落,等等。

使用cheerio (jquery的语法也适用),我想包装d元素,直到它只有paragraph作为父元素。

代码语言:javascript
运行
复制
<document>
   <paragraph>
       <d>text1</d>
   </paragraph>
   <paragraph>
       <d>text2</d>
   </paragraph>
</document>

我想过在元素上使用.unwrap()命令3次。但我不能保证在dparagraph之间的一些xml中,父元素的数量可能会更少或更多。

EN

回答 2

Stack Overflow用户

发布于 2017-12-05 02:26:03

不确定这是否适用于您的环境,但是,我认为您可以使用idea:

代码语言:javascript
运行
复制
$('d').each(function() {
cloned=$(this).clone();

$(this).closest('paragraph').append(cloned);
$(this).parentsUntil($('paragraph')).remove();

});

所以,克隆元素,将其放在段落内,删除所有parentsUntil()段落...

演示:

代码语言:javascript
运行
复制
$('d').each(function() {
cloned=$(this).clone();

$(this).closest('paragraph').append(cloned);
$(this).parentsUntil($('paragraph')).remove();

});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<document>
   <paragraph>
      <a>
         <b>
            <c>
               <d>text1</d>
            </c>
         </b>
      </a>
   </paragraph>
   <paragraph>
      <a>
         <b>
            <c>
               <d>text2</d>
            </c>
         </b>
      </a>
   </paragraph>
</document>

票数 2
EN

Stack Overflow用户

发布于 2017-12-05 02:25:56

这是我的解决方案。我使用for循环克隆<d>元素,然后将其重写为段落元素。

JS

代码语言:javascript
运行
复制
$(document).ready(function(){
  var i = $('d').length;
  for(x=i--;x>=0;x--){
    var c = $('d').eq(x).clone();
    $('d').eq(x).parents('paragraph').html(c);
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47639344

复制
相关文章

相似问题

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