需要添加类,但仅在元素可见时才需要

时间:2012-06-19 17:21:53

标签: jquery

我需要删除所有#tips li元素上的所有“no-right-marg”类。然后我需要用一个被点击元素的ID隐藏所有这些元素。然后,我需要检查哪些元素仍在显示,并为每四个元素添加一个“no-right-marg”类。我的代码不起作用。请参阅我的jsfiddle http://jsfiddle.net/VCZc4/2/

jQuery('#selector li').click(function() {

   colour = '.' + jQuery(this).attr('id');
   jQuery('#tips ' + colour).toggle();
   jQuery(this).toggleClass('inactive');
   jQuery('#tips li').removeClass('no-right-marg');

   jQuery('#tips li:visible').each(function(index){

       if(index %4===0 ){// if divisible by 4
           jQuery(this).addClass('.no-right-marg');

       }            
   });

});​

HTML

<ul id="selector">
    <li id="brown">button 1</a>
    <li id="green">button 2</a>
    <li id="blue">button 3</a>
    <li id="orange">button 4</a>

</ul>

<ul id="tips">
    <li class="brown">text</li>
    <li class="orange">text</li>
    <li class="blue">text</li>
    <li class="blue no-right-marg">text</li>
     <li class="blue">text</li>
     <li class="orange">text</li>
     <li class="blue">text</li>
    <li class="blue no-right-marg">text</li>
    <li class="green">text</li>
</ul>
​

2 个答案:

答案 0 :(得分:6)

似乎有一个“。”在你的addClass调用中。删除“。”修复你的代码。

http://jsfiddle.net/reygonzales/VCZc4/5/

我希望能得到你想要的东西。

答案 1 :(得分:1)

它是零索引的,因此mod 4 == 3就是你所需要的。 if(index % 4 === 0 )应为if(index % 4 === 3 )