1

私はブートストラップと jQuery を初めて使用します。現在、ブートストラップ ナビゲーション バー (複数のサブメニュー) を使用しています。ul 要素と li 要素でナビゲーションを出力する PHP スクリプトがあります。li 要素を持たない ul 要素がいくつかあります (一部のサブメニューにはそれ以上のサブメニューがありません)。そのため、Li を持たない ul は、Bootstrap によって空のメニューとして表示されますが、これは望ましくありません。

とにかく、ulのいずれかが空であるかどうかを調べて、CSSをdisplay: noneに変更しますか? 私は次のことを試しましたが、うまくいきません:

$( "ul" ).each(function() {
    if($(this).html()==""){
        $(this).css('display','none');
    }
});

どうもありがとう。

4

2 に答える 2

9

試す

$( "ul" ).not(':has(li)').remove()

デモ:フィドル

于 2013-07-27T16:03:22.593 に答える
3

:emptyセレクターを試してください:

$( "ul:empty" ).hide();

JSFiddle: http://jsfiddle.net/yGxj2/
ただし、いくつかの制限があります。

:empty (および :parent) で注意すべき重要な点の 1 つは、子要素にテキスト ノードが含まれていることです。

タグにスペースがある場合、このタグinnerHTML:emptyは機能しません..

于 2013-07-27T16:04:53.553 に答える