为什么我的addClass不起作用?

时间:2013-11-07 18:10:22

标签: jquery addclass

我有以下代码行不起作用:

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

然而,如果我改变它以找到ID而不是它的作品

我需要在不针对ID的情况下实现此功能:

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

这是代码开发工具给我的(这是上面代码的ID行),我在这里傻了吗?:

Screenshot

我正在尝试定位到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});

5 个答案:

答案 0 :(得分:1)

好的,我通过我正在使用的插件进行了挖掘,并找到了针对该特定链接的方式:

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

这很有用。我非常感谢那些努力尝试和帮助的人。

答案 1 :(得分:0)

我避免使用>运算符,因为我总是无法使用它。我会这样做:

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

答案 2 :(得分:0)

尝试:

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

答案 3 :(得分:0)

如果之后添加了您的课程,可能需要这样编写:

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

答案 4 :(得分:0)

这假设您的ul默认加载了.nav类,并且以后不会添加它。

$('ul.nav').on('click','.menu-item', function(){
    $(this).children('a').first().addClass('level-one');
});