我正在尝试删除div,如果它是空的。我有多个具有相同类的div,我想删除它,除非它有文本或图像。我希望它忽略空格。我正在使用这个:
if($.trim($(".C1").html()) == "") {
$(".C1").remove();
}
然后我意识到我需要为每个要删除的div添加一个唯一的id或类,所以我发现这有效:
if($.trim($(".C1").html()) == "") {
$(".C1").remove();
}
if($.trim($(".C2").html()) == "") {
$(".C2").remove();
}
等
有没有办法在一个脚本中执行此操作?我试过这样做:.C1,.C2,.C3等,但只有在所有div都为空时才有效。
答案 0 :(得分:3)
$(".C1").filter(':empty').remove()
或
$(".C2").filter(function() {
return !this.innerHTML.trim();
}).remove();
答案 1 :(得分:1)
您可以使用jQuery的:empty选择器。
// Removes every "empty" element.
$(":empty").remove();
这是一个具体的例子。
$(function() {
$(".foo, .bar, .baz")
.filter(function(_, el) {
return $(el).is(":empty");
})
.remove();
console.log("Empty <div /> has been removed:", $(".foo").length == 0);
});
<div class="foo"></div>
<div class="bar">Not empty</div>
<div class="baz">
<img src="/favicon.ico" />
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
答案 2 :(得分:1)
$('.C1, .C2').filter(function(){
return !$.trim(this.innerHTML)
}).remove()
答案 3 :(得分:0)
另一种选择是检查孩子的数量。
$(document).ready(function(){
$('.C1').each(function(){
if($(this).children().length == 0){
$(this).remove();
}
});
});
JSFiddle Link:http://jsfiddle.net/7udv7/1/