下拉菜单-jQuery Odd-Even是向奇数元素添加偶数


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,但没有运气。

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');
});

应该有效。

:ODD/:EVEN选择器是基于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/

最新更新