0

空の場合は div を削除しようとしています。同じクラスの複数の div があり、テキストまたは画像がない限り削除したいと考えています。空白を無視したい。私はこれを使用しています:

    if($.trim($(".C1").html()) == "") {
  $(".C1").remove();
}

次に、削除したい div ごとに一意の ID またはクラスを設定する必要があることに気付き、これが機能することがわかりました。

    if($.trim($(".C1").html()) == "") {
  $(".C1").remove();
}

    if($.trim($(".C2").html()) == "") {
  $(".C2").remove();
}

これを1つのスクリプトで行う方法はありますか? 私はこれをやってみました:.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 に答える