2015-10-05 25 views
2

試圖找出一種方法來刪除列表項中的4個組中的類。刪除列表中的類x數

因此,假設我有一個包含50個列表項目的unorder列表,其中有40個項目具有「隱藏」類別。我有一個處理點擊事件的按鈕來刪除li的hide類中的4個。

HTML

<ul> 
    <li>foo</li> 
    <li>foo</li> 
    <li>foo</li> 
    <li>foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
    <li class="hide">foo</li> 
</ul> 
<button>Click me to see the next 4 items</button> 

的JavaScript

$('button').click(function() { 
    $('li.hide').removeClass('hide'); 
}) 

回答

2

嘗試這樣

$('button').on('click',function() { 
    $('li.hide').each(function(i) { 
     if (i == 4) 
      return false; 
     $(this).removeClass('hide'); 
    }); 
}); 
+0

不錯的辦法。 ['.each'](https://api.jquery.com/each/)在回調中提供了一個索引。 '函數(i){if(i <4)$(this).removeClass('hide')}'好得多。 – royhowie

+0

@royhowie假設我有50個div,如果使用你的條件,那麼它會迭代50個div,這是不高效的..打破i == 4是不是錯誤的索引從0開始。0 -3​​ = 4 –

+0

對不起,你對了。我的意思是添加一個'else return false',但忽略了。 – royhowie