3

以下代码行将标记更改为p标记div

$('p').contents().unwrap().wrap('<div />');

这是问题:

这也会将任何内部标签变成divs !

例子:

采用以下 HTML:

<p>abc<a>121</a>cba</p>

运行上面的代码给了我这个:

<div>abc</div>
<div><a>121</a></div>
<div>cba</div>

但我想实现这一点:

<div>abc<a>121</a>cba</div>

我能做些什么来实现这一点,为什么它在我的不起作用时起作用?

4

2 回答 2

5

你需要

$('p').wrap('<div />').contents().unwrap();

演示:小提琴

你的代码是错误的,因为

  1. $('p').contents().unwrap()将删除p元素并将所有子节点添加到p元素的父节点,然后集合有 3 个元素。
  2. .wrap('<div />');div将用标签包装所有三个元素

另一种可能的解决方案是

$('p').contents().unwrap().wrapAll('<div />');

演示:小提琴

于 2013-07-26T03:20:58.770 回答
0

你可以试试这个

$('p').replaceWith($('<div>'+ $('p').html()+ '</div>'));
于 2013-07-26T03:20:54.943 回答