jQuery检查childNode类

时间:2009-10-13 23:26:44

标签: jquery

我正在试图弄清楚如何检查childNode的类。我目前有一个这样的列表:

<li>
    <a href="#">Link</a>
    <ul class="children">
        <li class="current"></li>
        <li></li>
        <li></li>
    </ul>
</li>

以前,一个额外的'活动'类正在应用于包含li.current的ul,我有这个jQuery脚本,它正在执行将父li标记为活动以及兄弟a:< / p>

jQuery("ul.active").siblings('a').addClass('current').parent().addClass('current');

但是'active'类不再被应用了,所以我需要检查任何ul.children的子项以查看是否有任何li.current。我只是不确定如何去做...

3 个答案:

答案 0 :(得分:1)

使用hasClass()命令

if ($("ul.children li").hasClass('current')) {
    // at least one of the <li> elements of the ul has the current CSS class
}

或检查至少在<li>上是否有CSS类current的其他方法是使用长度

if ($("ul.children li").length > 0) {
    // at least one of the <li> elements of the ul has the current CSS class
}

然后将该类添加到同级<a><li>进一步

var listItems = $("ul.children li");

if (listItems.length > 0) {
   listItems.parents('li').children('a').andSelf().addClass('current');
}

答案 1 :(得分:1)

工作代码:

jQuery("ul.children li.current").parent().siblings('a').addClass('current').parent().addClass('current');

答案 2 :(得分:0)

$('a, ul.children:has[li.current]', $('li:has[li.current]').addClass('current')).addClass('current')