具有以下DOM结构:
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li class="click_here"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li class="click_here"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li class="click_here"></li>
</ul>
我尝试每5“li”添加“last”类,但不包括“click_here”类的那些。
我发现这不起作用:
$('ul li:not(.click_here)').filter(':nth-child(5n)').addClass('last');
我也尝试了几种方法,比如:
$('ul li').filter(':not(.click_here)').filter(':nth-child(5n)').addClass('last');
$('ul li').not($('.click_here')).filter(':nth-child(5n)').addClass('last')
似乎没有跳过具有“click_here”类的“li”项目。
所以我最后不得不这样做:
$.each($('ul li').filter(':not(.click_here)'),function(i,v){
if((i+1)%5 == 0) $(this).addClass('last');
});
你们中有谁知道我的第一种方法中我做错了什么?
非常感谢!
答案 0 :(得分:5)
我认为你不能使用nth-child,但请尝试
$('ul li:not(.click_here)').filter(function (i) {
return i % 5 == 4
}).addClass('last');
演示:Fiddle
答案 1 :(得分:2)
这个版本与nth-child工作正常:
$('ul').find('li:not(".click_here")').filter(':nth-child(5n)').addClass( 'last' );
$('ul').find('li:not(".click_here")').filter(':nth-child(5n)').addClass( 'last' );
.last {
border-bottom: 2px dotted #000;
background-color:#ff0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li class="click_here">
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li class="click_here">
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li class="click_here">
</ul>