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/