jQuery解包删除多个父级

时间:2013-09-11 09:14:56

标签: jquery html html5 dom unwarp

我有一个像这样的HTML结构

<aside class="l-region l-region--sidebar-first">
  <div></div>
  <div></div>
</aside>

旁边的两个div确实有类和子元素但是为了问题你不需要知道它们是什么。在DOM就绪时,我将两个内部div包装在一个新的div中,如此

<aside class="l-region l-region--sidebar-first">
  <div class"wrapping-div">  
    <div class="inner-div-one"></div>
    <div class="inner-div-two"></div>
  </div>
</aside>

我没有使用wrap()函数来获取.wrapping-div中的两个div,我创建了div,将它附加到旁边的DOM中,然后将两个内部div附加到该新元素我创造了。

当我尝试解包()这两个div时,.wrapping-div和.l-region - sidebar-first都从DOM中删除。 JS打开下面的元素。

$(function() {
  $('.inner-div-one').unwrap();
  $('.inner-div-two').unwrap();
});

我认为unwrap()应该删除一个父母。为什么要删除这两个,有没有人知道如何阻止它?

干杯。

2 个答案:

答案 0 :(得分:3)

您的代码实际上正在运行,因为它可以正常工作。在$('。inner-div-one')的第一个实例中.unwrap();你正在删除父div,在第二个实例中你删除了标签。它实际上一次只删除一个父项。我认为你不需要那里的第二个声明。

答案 1 :(得分:0)

嗯,就像我想的那样。你打电话给unwrap两次,就是这样。

$(function() {
    $('.inner-div-one').unwrap();
});

就足够了,因为它们都能解开它们。