我试图从2个div元素中删除内容而不删除div本身。
<div id='test'>
content I want to remove
<div id='childDiv'>
content I want to remove
</div>
</div>
我想保留childDiv并测试div但删除其内容。我该怎么做?
$('#test').empty()
也会删除childDiv
。
答案 0 :(得分:3)
如何存储childDiv然后清空父项,然后将内部子项放回去?
$('#test').html($('#childDiv').html()) // didn't quite work
// this clears both divs and leaves only the structure
$('#test').html($('#childDiv').html(""));
jsFiddle,用铬检查生成的黑线,检查。 http://jsfiddle.net/tbspn/
答案 1 :(得分:1)
使用.contents()
和.filter()
功能过滤掉它们。
$('div').each(function() {
$(this).contents().filter(function() {
return this.nodeType != 1
}).remove();
});
<强> Check Fiddle 强>
<强> Extra Nesting 强>
return this.nodeType != 1
将选择所有非元素类型节点并将其从 DOM中删除。
答案 2 :(得分:1)
这是JavaScript的方法:
document.getElementById('test').innerHTML = '';
document.getElementById('childDiv').innerHTML = '';
答案 3 :(得分:0)
$('#test').html('');
也清除所有内部标记。
答案 4 :(得分:0)
这应该有效:
$('#test').text('');
$('#childDiv').text('');