0

如果 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 都为空时才有效。

4

4 回答 4

3
$(".C1").filter(':empty').remove()

或者

$(".C2").filter(function() {
    return !this.innerHTML.trim();
}).remove();
于 2012-12-14T16:40:02.220 回答
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>

于 2012-12-14T16:41:05.933 回答
1
$('.C1, .C2').filter(function(){
     return !$.trim(this.innerHTML)
}).remove()
于 2012-12-14T16:41:22.127 回答
0

另一种选择是检查孩子的数量。

$(document).ready(function(){
    $('.C1').each(function(){
        if($(this).children().length == 0){
           $(this).remove();     
        }
    });
});

JSFiddle 链接:http: //jsfiddle.net/7udv7/1/

于 2012-12-14T16:53:23.020 回答