2016-06-16 8 views
0

存在しない場合、私は、次のクラスがある:削除クラス全く内側要素は

<div class='prod-item'> 
</div> 

IがDOM内のこのクラスの複数のバージョンを有することができます。それぞれを繰り返し処理し、内部のHTML要素を持たないものを削除することは可能ですか?

は例えば、これは滞在することができます:

<div class='prod-item'> 
<p>Pussy</p> 
</div> 

これは行く必要があります。

<div class='prod-item'> 
</div> 

私は、次の不完全な機能を持っていますが、私は、内側の要素が存在するかどうかを確認する方法についてはわかりませんよ。

$('li[class="prod-item"]').each(function() { 
    if(){ 
    this.removeAttribute('class'); 
    } 
}); 
+0

あなたは何をしようとしましたの?私は1分で2つのソリューションを考えることができます:) –

+0

[divが空であるかどうかを確認するためにifステートメントを使用する]の可能な複製(http://stackoverflow.com/questions/4665466/using-an-if-statement-to -check-if-a-div-is-empty) –

+0

'removeAttrribute'は要素を削除しません。要素を削除するだけです。実際の要素を削除するには 'remove()'を呼び出します。私は以下の答えを掲示しました – wmash

答えて

1
$(".prod-item").each(function() { 
    if($(this).children().length == 0) { 
    $(this).remove(); 
    } 
}); 
1

速いバリアントの種類:

$('li[class="prod-item"]').each(function() { 
     if($(this).children().length == 0){ 
     this.removeAttribute('class'); 
     } 
    }); 
1

は、HTML()構文を使用します。

$('li[class="prod-item"]').each(function() { 
    if($(this).html().length === 0){ 
    this.removeAttribute('class'); 
    } 
}); 
1

filter()方法を使用して、すべての空のdivのをフィルタリングして、removeClass()方法を使用してclassを削除してください。 htmlコンテンツは、html()メソッドを使用して取得し、末尾および先頭のスペースを削除した後に文字列の長さを確認するには、$.trim()メソッドを使用します。

$('.prod-item').each(function() { 
    if ($.trim($(this).html())=='') $(this).removeClass('class'); 
}); 
1

かわりdiv要素のLI要素を用い...

1)emptyセレクタ:

$('li[class="prod-item"]:empty').removeClass('prod-item'); 

2)またはnotここセレクタ:

$('li[class="prod-item"]:not(:has(*))').removeClass('prod-item'); 
1

を使用でき

$('div.prod-item').filter(function() { 
 
    return !$.trim($(this).html()).length; 
 
}).removeClass('prod-item');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='prod-item'> 
 
</div> 
 
<div class='prod-item'> 
 
    <p>Pussy</p> 
 
</div> 
 

 
<div class='prod-item'> 
 
    <p>Wagon</p> 
 
</div>

関連する問題