2012-05-10 8 views
0

我有類rowJQuery的切片()不隱藏/顯示正確

的16個元素我試圖改變被同時示出了由切割的元素。

$(document).ready(function() { 
$('.row').slice(0, 2).show(); 
$('.row').slice(3, 16).hide(); 


$('#next').click(function() { 
    $('.row').slice(0, 2).hide(); 
    $('.row').slice(3, 5).show(); 
    $('.row').slice(6, 15).hide(); 
}); 

}); 

所以一開始,你只看到這三個項目:

Row 0 
Row 1 
Row 2 
//$('.row').slice(0, 2).show(); -- this is correct 

但後來當我點擊我的按鈕顯示未來三年,而不是此顯示:

Row 2 
Row 3 
Row 4 
//yet I specified this: $('.row').slice(3, 5).show(); 

爲什麼這發生了,它如何被修復?

Jfiddle:http://jsfiddle.net/RjHvw/

+1

請給一個http://jsfiddle.net/演示 – xdazz

+0

http://jsfiddle.net/RjHvw/ – Norse

回答

1

片的方法是基於從零開始的索引,Slice,甚至結束對零基礎參數也爲基礎的。範圍擴展到但不包括指定的索引。

See demo in JsFiddle

+0

右鍵,'slice'作品有什麼working demo半開區間'[start,end]'而不是關閉區間'[start,end]'。 –

1
Row 2 
Row 3 
Row 4 
//yet I specified this: $('.row').slice(3, 5).show(); 

這似乎是正確的,索引值是0爲主。

你可以只添加1

// just so it's clear 
// you'd tipically have an `idx` 
// or `counter` where you add `1` 
$('.row').slice(3 + 1, 5 + 1).show(); 
1

正如其他已經說過Slice使用0基於索引和結束編號元件從所選擇的列表中排除。以下是在jQuery.com參數定義它說這個

.slice(開始[,結束])
startAn整數,指示基於0的 位置處的元素開始將被選擇。如果爲負數,則表示從該集合的末尾開始偏移。

endAn整數指示 元素停止選擇的基於0的位置。如果 爲負數,則表示從該集合的末尾開始偏移。如果省略,則 範圍會一直持續到設定的結束。

這裏是你正在努力實現