0

我已经尝试过各种版本的“unwrap”,但我一直觉得 unwrap 不是一个函数。我如何在这里放弃 b 标签?

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

我试过了

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

4 回答 4

1

一个非常简单的方法.unwrap()是:

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

jsFiddle 示例

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

于 2013-04-12T18:15:34.333 回答
1

问题是“测试”不是一个元素,而是一个文本节点。

假设您的真实 HTML 可能更复杂,即可能有很多b元素,并且某些文本不在b元素中,您应该这样做

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

演示(点击“用JS运行”)

span但通常情况下,你会从一个给它的类开始处理这种情况,font-weight:bold然后只是改变它的类。b, i, font, 和类似的元素在今天已经很少用了,它们使所有的风格变化变得更加沉重。

于 2013-04-12T18:14:11.493 回答
0

你不想unwraphtml 标签而是它的内容

您可以为此使用以下内容

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

JS 小提琴链接

于 2013-04-12T19:32:48.837 回答
0
var b = document.getElement... // Get your b tag
b.outerHTML = b.innerHTML;

这可能不需要使用 jQuery 就可以工作。如我错了请纠正我。

于 2013-04-12T18:14:03.100 回答