我需要添加一个类,它将以不同方式设置列表项的样式。因为我在页面上有多个列表,我需要为每个列表重新设置样式,我决定查看每个列表。
$('ul.myList').each(function() {
$('li:visible:even:not(.red, .green)').addClass('newStyle');
});
隐藏了部分项目,并且需要跳过每个列表中的前两项。
<ul>
<li class="red">...</li>
<li class="blue">...</li>
<li>...</li>
<li>...</li>
<li class="hidden">...</li>
<li>...</li>
</ul>
<ul>
<li class="red">...</li>
<li class="blue">...</li>
<li class="hidden">...</li>
<li class="hidden">...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
出于某种原因,似乎奇数/偶数从一个列表继续到另一个列表。我错过了什么?
P.S。在这里,我使用.hidden提出一个想法,实际上有几种不同的隐藏方式。
答案 0 :(得分:1)
li
的选择器需要指定一个参考点,如果你想重启&#34;偶数/奇数。
您可以使用.find()
选择后代元素。
$('ul.myList').each(function() {
$(this).find('li:visible:even:not(.red, .green)').addClass('newStyle');
});
上述背景中的$(this)
是指您当前正在ul
.each()