用jQuery删除标签

时间:2013-04-12 18:09:24

标签: jquery

我尝试过各种版本的“unwrap”,但我一直在打开包装不是一个功能。我如何在这里抛弃b标签?

<div id="top_left">
    <font size="3">
       <b>test</b>
    </font>
</div>

我试过

jQuery("#top_left b").unwrap();

4 个答案:

答案 0 :(得分:1)

问题是“test”不是元素而是文本节点。

假设您的真实HTML可能更复杂,那可能有许多b元素,而某些文字不在b元素中,您应该做这样的事情

$('#top_left b').replaceWith(function(){
  return $('<span>', {text:$(this).text()});
});

Demonstration(点击“使用JS运行”)

但通常情况下,您可以通过span开始处理这种情况,该类有一个类font-weight:bold并且只是更改其类。 bifont和类似元素今天很少有用,它们会使所有样式更改更重。

答案 1 :(得分:1)

在没有.unwrap()的情况下执行此操作的一种非常简单的方法是:

$('#top_left font').html($('#top_left font').text());

<强> jsFiddle example

正如一些评论者指出的那样,<font>在很久以前就被弃用了。

答案 2 :(得分:0)

var b = document.getElement... // Get your b tag
b.outerHTML = b.innerHTML;

这可能无需使用jQuery即可工作。如果我错了,请纠正我。

答案 3 :(得分:0)

您不希望unwrap html标记,但其内容

您可以使用以下内容

$('#top_left b').contents().unwrap();

JS FIDDLE LINK