以下代码行会将p
代码更改为div
代码:
$('p').contents().unwrap().wrap('<div />');
以下是问题:
这也会将任何内部标签转换为div
s!
示例:
采用以下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>
我能做些什么来实现这一目标,为什么当我不这样做时呢?
答案 0 :(得分:5)
你需要
$('p').wrap('<div />').contents().unwrap();
演示:Fiddle
您的代码错误,因为
$('p').contents().unwrap()
将删除p
元素并将所有子节点添加到p
元素的父元素,然后该集合包含3个元素。.wrap('<div />');
将使用div
标记另一种可能的解决方案是
$('p').contents().unwrap().wrapAll('<div />');
演示:Fiddle
答案 1 :(得分:0)
你可以试试这个
$('p').replaceWith($('<div>'+ $('p').html()+ '</div>'));