3

<ul>私はsにネストされたメニューの 3 つのレイヤーを持っています。

<div id="menu">
    <ul>
    <li><a href="somewhere.html">enu Item</a>
      <ul>
        <li><a href="somewhere.html">Menu Item 2</a>
            <ul>
               <li><a href="somewhere.html">Menu Item 3</a></li>
             </ul>
        </li>
      </ul>   
    </li>
    </ul>
</div>

Jquery を使用してuls の最初のレベルの href 属性を # に置き換えたいのですが、2 番目と 3 番目の a タグの href 属性はそのままにしておきます。

私は、第 2 レベルでは機能するが第 3 レベルでは機能しないこのスクリプトを作成しましたul

$("#menu ul li a").not("#ctamenu ul li ul a").attr("href", "#");

私はこれを試しました:

$("#menu ul li a").not("#menu ul li ul a").not("#menu ul li ul li a").attr("href", "#")

しかし、これは機能しません-3番目のレイヤーにはまだありますhref='#'

「double not」ステートメントを実行する方法はありますか?

4

2 に答える 2

6

3 番目のレベルは、欠落している別のレベルにネストされていulますが、子セレクターを使用する方が簡単です。

#menu > ul > li > a
于 2013-02-18T02:16:19.270 に答える
0

状況によってはclass="first-level"、最初のレベルのアンカー タグに追加を作成すると役立つ場合があります。$('.first-level')次に、メニューのロジックがよりレベルに依存するようになるため、より保守しやすい を使用できます。

于 2013-02-18T02:51:22.477 に答える