3

私の現在のコードは次のとおりです。

<ul>
<li class="nav">
<-- uc tag with hyperlink that show/hides based on a code behind & user rights. --><br />
</li>
</ul>

<script type="text/javascript" >
    $('li.nav:empty').hide();       
</script>

行要素は、ユーザー権限に基づいてアプリケーションに自動的に入力されます。ナビゲーション内には、このタイプのリンクの複数のインスタンスがあります。

このソリューションは、私が取り組んでいた別のアプリケーションで機能しましたが、何らかの理由で現在のアプリケーションでは機能していません。

上記のコードは単なる例であり、直接コピーアンドペーストではありません。BRタグは実際のアプリケーションには存在せず、フィラーテキストも存在しません。

4

3 に答える 3

1


まず、liの内側からを削除する必要があります。

スクリプトをDOM対応ハンドラーで囲みます

<script type="text/javascript">
   $(function () {
      $('li.nav:empty').hide();
    });       
</script>
于 2012-11-05T19:01:06.057 に答える
1

テキストなしでli要素を非表示にする場合は、次を使用できます。

$('li.nav').filter(function(){return $(this).text().trim().length==0}).hide();

デモンストレーション

于 2012-11-05T19:05:04.760 に答える
0

:empty説明:子を持たないすべての要素(テキストノードを含む)を選択します。

$('li.nav:empty')いくつかのテキストノードがあるので、あなたは空ではないと思います。

おそらくフィルターを書くべきです。

$('li.nav').filter(function () { return $.trim($(this).text()); }).hide();
于 2012-11-05T19:04:35.340 に答える