0

動作しない以下のコード行があります。

$( "ul li.open > a" ).addClass( "level-one" );

それでも、クラスではなくIDを見つけるように変更すると、機能します

ID をターゲットにせずにこれを機能させる必要があります。

$( "ul li#menu-item-24 > a" ).addClass( "level-one" );

開発ツールが提供するコードは次のとおりです (これは上記のコードの ID 行です)。私はここで愚かですか?:

スクリーンショット:

Google へのリンクをターゲットにしようとしています (例として使用)。

注目に値するのは、開発ツールがどちらの行にもエラーを返さないことです。

編集

OK、.open最初のレベルのリンクがクリックされたときにクラスが追加されます (構造は、私が使用しているアコーディオン メニュー プラグイン用です - https://github.com/tefra/navgoco )。

<ul id="demo1" class="nav"><li id="menu-item-24" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-24 open"><a href="http://google.com">Logged In<span class="caret"></span></a>
<ul class="sub-menu" data-index="0" style="display: block;">
    <li id="menu-item-25" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-25"><a href="#test" class="boobies">Sub menu item</a></li>
</ul>
</li>
<li id="menu-item-26" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-26"><a href="http://skills.com">Testing<span class="caret"></span></a>
<ul class="sub-menu" data-index="1" style="display: none;">
    <li id="menu-item-27" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27"><a href="http://boom.com" class="boobies">Child</a></li>
</ul>
</li>
</ul>

プラグインの JS は、https ://github.com/tefra/navgoco/blob/master/src/jquery.navgoco.js にあります。

私がやっているのは、次のようにアコーディオンを初期化することだけです:

$("#demo1").navgoco({accordion: true});
4

5 に答える 5

1

わかりました、私が使用しているプラ​​グインを掘り下げて、その特定のリンクをターゲットにする方法を見つけました:

$( "li:has(ul) > a" ).addClass( "level-one" );

これはうまくいきました。助けようと努力してくれた多くの人々に感謝します。

于 2013-11-07T18:50:04.470 に答える
0

これは、ul がデフォルトで .nav クラスでロードされ、後で追加されないことを前提としています。

$('ul.nav').on('click','.menu-item', function(){
    $(this).children('a').first().addClass('level-one');
});
于 2013-11-07T18:48:34.557 に答える
0

試す:

$( "ul li.open a:first" ).addClass( "level-one" );
于 2013-11-07T18:24:26.557 に答える
0

後でクラスを追加する場合は、次のように記述する必要がある場合があります。

$("ul").find(".open > a").addClass("level-one");
于 2013-11-07T18:31:07.350 に答える