0

我有下面的代码行不起作用:

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

但是,如果我更改它以查找 ID 而不是它可以工作的类

我需要在不针对 ID 的情况下使其正常工作:

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

这是开发工具给我的代码(这是上面代码的 ID 行),我在这里是不是很愚蠢?:

截屏

我正在尝试定位到 Google 的链接(用于示例)。

值得注意的是,开发工具不会为任何一条线带来任何错误。

编辑

好的,.open当单击第一级链接时添加类(该结构用于我正在使用的手风琴菜单插件 - https://github.com/tefra/navgoco)并且按照这里的要求是我的HTML:

<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:15:22.770 回答
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 回答