jQuery中是否有一种方法可以删除所有子节点,但是将文本保留在节点中?
如:
<div>
Hello
<span>World</span>
</div>
结果将是:
<div>
Hello
</div>
答案 0 :(得分:7)
假设你真的想要:
<div>Hello World</div>
结果:
var node = $('#yourDiv');
node.text(node.text());
答案 1 :(得分:5)
试试这个:
$('div').children().remove()
答案 2 :(得分:0)
这是一个简单的插件,可以递归地为您执行此操作(如果您有多个子级深度):
$.fn.extend({
stripChildren : function() {
$(this).children().each(function() {
if ($(this).children().size() > 0)
$(this).stripChildren();
else
$(this).replaceWith($(this).html());
$(this).parent().stripChildren();
});
}
});
使用它很简单:
$(document).ready(function() {
$('div').stripChildren();
});