除div
div/span
以外,如何删除class='notsure'
内的所有内容?我可以使用empty
删除所有子项,但不确定如何保存特定的div
。
<div id="test">
here is a test
<p>a paragraph</p>
<div class="notsure"></div>
</div>
答案 0 :(得分:35)
var save = $('#test .notsure').detach();
$('#test').empty().append(save);
答案 1 :(得分:13)
更新
如果您还想删除文字here is a test
:
var notsure = $('.notesure');
$('#test').html('').append(notsure);
$('#test').children().not('.notsure').remove();
答案 2 :(得分:6)
试试这个
$("#test").children().filter(":not(.notesure)").remove();
答案 3 :(得分:1)
您可以过滤其内容:
var b = $('#test').contents();
b.filter(function() { //
return this.nodeType == 3; //Node.TEXT_NODE
}).remove()
.end().filter(':not(.notesure)').remove(); //Find the elements that don' t have the .notesure class.;
$('.notesure').click(function(){
$(this).html('clicked !!');
}
答案 4 :(得分:1)
.notsure
$('.notsure').clone(true).appendTo($('#test').empty());
<强> jsBin demo 强>
从true
移除clone(true)
,以摆脱{em>点击等.notsure
的约束事件。
如果不对事件感兴趣,那么您可以这样做:
$('.notsure').appendTo($('#test').empty());
答案 5 :(得分:1)
您可以查看以下是工作示例
$(function () {
$('#delete-button').click(function () {
deleteElementsBelow('#parent-container');
});
function deleteElementsBelow(parentContainerSelector) {
var save = $('#parent-container #delete-button').detach();
$(parentContainerSelector).empty().append(save);
}
});
答案 6 :(得分:-1)
这里可以做一招......
$("#test").html('<div class="notesure">'+$('div.notesure').html()+'</div>')