【问题标题】:jQuery remove tags either side of a divjQuery删除div两侧的标签
【发布时间】:2012-02-09 11:36:33
【问题描述】:

如何删除这个 div 之外的 p 标签(我确实想删除测试 div)。

<p>
  <div class='test'>
    content here
    <img />
  </div>
</p>

我想要的结果是……

<div class='test'>
  content here
  <img />
</div>

我知道这里有一个类似的问题:jQuery: How do I remove surrounding div tags?,但在我的情况下无法使用

我试过了

$('p .test').replaceWith($('.test));

当然,这只是选择了沙龙幻灯片 div,而不是它之前的 p。

【问题讨论】:

标签: jquery jquery-selectors


【解决方案1】:

您正在寻找的方法称为.unwrap() 查看文档:http://api.jquery.com/unwrap/

【讨论】:

    【解决方案2】:

    这会做到,但请记住它会影响所有带有class="test"的div

    $("div.test").unwrap();
    

    【讨论】:

    • 非常感谢,如果它对任何人有帮助,我还必须确保它在 $(document).ready 时被解雇。
    • 是的,您可以使用$(document).ready(function(){...}) 结构或更简单的$(function(){...})
    【解决方案3】:

    尝试以下方法:

    $('.salon-slideshow').each(function() {
      $(this).parent().replaceWith($(this));
    });
    

    【讨论】:

      【解决方案4】:

      试试这个:

      $('.test').each(function() {
          $(this).insertAfter($(this).parent());
          $(this).prev().remove();
      });
      

      【讨论】:

      • -1 :因为 .unwrap() 是一种更好、更常用的方法。
      • 以前从未使用过 unwrap()。谢谢(你的)信息。仍然我的答案不是错误的,只是它不是最好的答案.. :)
      猜你喜欢
      • 2014-12-01
      • 2012-01-05
      • 2011-10-27
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      相关资源
      最近更新 更多