如何删除一个元素,但不是内部的内容?
如何删除元素,但不包含内容里面的那个元素?如何删除一个元素,但不是内部的内容?
<a href="#">
<span>
<img src="pic-1.jpg"/>
</span>
</a>
我想删除封装了图像的span
。
这样我就可以得到,
<a href="#">
<img src="pic-1.jpg"/>
</a>
你必须修改你的HTML架构的位位置:
<a href="#" id="my_href">
<span id="my_span">
<img src="pic-1.jpg"/>
</span>
</a>
jQuery的解决方案:
$("#my_href").html($("#my_span").html());
非jQuery的解决方案:
document.getElementById("my_href").innerHTML = document.getElementById("my_span").innerHTML;
像这样使用HTML通常是一种不好的做法。你正在销毁和重新创建节点,而不是简单地重新定位节点,并删除节点。它还会销毁任何处理程序或与'img'元素相关的其他数据。 – 2012-03-17 18:40:37
啊,真的吗?好的,那么我将在未来避免这种情况。 :) – 2012-03-17 18:41:49
这是**不** ** jQuery解决方案! – gdoron 2012-03-17 18:46:54
$(document).ready(function(){
$span = $('span');
$span.replaceWith($span.html());
});
我认为这是最完整的答案,因为它也适用于展开文本(不仅仅是DOM元素) – viery365 2017-03-29 02:25:35
[删除HTML标签,但保留的innerHTML](可能的重复http://stackoverflow.com/questions/4232961/remove-a-html-tag-but-keep-the-innerhtml ) – Dzyann 2017-03-01 13:18:40