jQuery Odd甚至正在添加奇怪的元素

时间:2013-02-14 01:19:02

标签: jquery drop-down-menu

jQuery('li.has-sub ul li:even').addClass('even');
jQuery('li.has-sub ul li:odd').addClass('odd');

这些课程正被添加到下拉菜单中。在一个下拉菜单中,类正确添加,但另一个下拉列表是将类even添加到奇数元素。我认为jquery可能会将所有列表项一起计算,这仍然无法解释为什么它将1计为偶数。你可以在这个网址上看到问题:

带有黄色背景的菜单以漂流之旅开始 http://bit.ly/XAEmh7

我尝试添加this,试图让jQuery只计算ul但没有运气。

2 个答案:

答案 0 :(得分:1)

根据您的代码,jQuery的行为正确:

jQuery('li.has-sub ul li:even').addClass('even');
jQuery('li.has-sub ul li:odd').addClass('odd');

如果您将其更改为:

jQuery('li.has-sub').each(function(){
   jQuery('ul li:even',this).addClass('even');
   jQuery('ul li:odd',this).addClass('odd');
});

应该工作。

答案 1 :(得分:0)

:ODD /:偶数选择器是基于0的索引,因此它将高亮第二,第四等行为奇数(索引1,3等)

另外,为了提高性能,您应该使用.filter,如下所示:

$(document).ready(function() {
    $('li ul').filter(':even').addClass('even').end()
              .filter(':odd').addClass('odd');
});

请参阅jQuery文档:http://api.jquery.com/odd-selector/