如何用另一个元素替换元素?
问题描述:
我有这样的HTML结构:如何用另一个元素替换元素?
<div>something</div>
<p>this is a paragraph</p>
现在我想更换<p>
与<span>
。像这样的东西;
<div>something</div>
<span>this is a span</span>
我想是这样的:
$("div").siblings("p"). /* replace with "<span>this is a span</span>" */
注:没有说<p>
周围的任何包装。所以我不能使用.html()
。
那么,这样做有可能吗?
答
考虑给定的HTML,你可以这样来做:
答
jQuery的.replaceWith()方法从DOM移除相关内容,并插入它的位置与单个调用新的内容。考虑这个DOM结构:
<div class="container">
<div class="inner first">Hello</div>
<div class="inner second">And</div>
<div class="inner third">Goodbye</div>
</div>
第二内<div>
可以与指定的HTML取代:
$("div.second").replaceWith("<h2>New heading</h2>");
这导致以下结构:
<div class="container">
<div class="inner first">Hello</div>
<h2>New heading</h2>
<div class="inner third">Goodbye</div>
</div>
答
你可以使用这个:
$('p').replaceWith(function(){
return $("<span />", {html: $(this).html()});
});