jQuery,一次更改5个项目

时间:2012-12-12 18:01:06

标签: javascript jquery

如果我有这样的标记:

<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>
<li class="supress hidden"></li>

我可以通过写下来删除class =“hidden”:

if ($('.supress').hasClass('hidden')) {
    $('.supress').removeClass('hidden');
}   

修改:在我尝试之前:

if ($('.supress:lt(5)').hasClass('hidden')) {
    $('.supress').removeClass('hidden');
}   

但如果我只想删除前五项中的“隐藏”类,我该怎么办?

5 个答案:

答案 0 :(得分:9)

$(".supress.hidden:lt(5)").removeClass('hidden')

答案 1 :(得分:6)

您可以获得包含多个课程的元素,因此您无需检查是否有课程。

$('.supress.hidden').slice(0,5).removeClass('hidden');

答案 2 :(得分:5)

我会使用$.slice来削减前5:

$('.supress.hidden').slice(0, 5).removeClass('hidden');

虽然您可以使用:lt选择器获得相同的结果,但我们不建议its own page

  

因为:lt()是jQuery扩展而不是CSS的一部分   规范,查询使用:lt()无法利用   本机DOM querySelectorAll()提供的性能提升   方法。 为了在现代浏览器中获得更好的性能,请使用   $(“your-pure-css-selector”)。slice(0,index)改为

答案 3 :(得分:2)

$('.supress').each(function(i){
     if(i < 5 && $(this).hasClass('hidden')){
          $(this).removeClass('hidden');
     }
});

答案 4 :(得分:0)

jQuery提供了很多方法来实现这一目标: