1

これは信じられないほどシンプルでなければならないことは知っていますが、私はこれの壁に頭をぶつけてきました。私のHTMLは次のとおりです。

<div class="awardsparent">
<h4>AWARDS</h4>
<ul class="awards"><li></li></ul>
</div>

ul.awards liが空の場合、コンテナdiv.awardsparentを非表示にしようとしています。これが私のjQueryコードです:

$(function() {          
  if($('ul.awards li:empty')) {
  $('div.awardsparent').hide();
    }
});

ありがとうございました!さらに情報が必要な場合はお知らせください。

4

3 に答える 3

3

技術的には、おそらくifテストは必要ありません。ただ、jQueryの空のセレクターに魔法をかけてもらいましょう。

このワンライナーはそれを行う必要があります。

$("ul.awards li:empty").closest('div.awardsparent').hide()

編集:そして空のセレクターとは、$("ul.awards li:empty")何かを返すと親を非表示にすることを意味しますが、選択が空の場合は、closest()適用するものがないため、黙って無視します。

于 2012-12-11T22:02:33.067 に答える
3

試す:

if ($('ul.awards li').is(':empty')) {
    $('div.awardsparent').hide();
}​

jsFiddleの例

于 2012-12-11T22:00:23.413 に答える
1

.length次のように、を使用してみてください。

if ($("ul.awards li:empty").length)
于 2012-12-11T21:59:38.640 に答える