我有类row
我正在尝试通过切片来改变一次显示的元素。
$(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/
答案 0 :(得分: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 :(得分:1)
切片方法基于零基索引Slice,甚至结束参数也是基于零的。范围扩展到但不包括指定的索引。
答案 2 :(得分:1)
正如其他人已经说Slice使用基于0的索引,并且从所选列表中排除了结束编号的元素。这是jQuery.com中的参数定义,它说明了这个
.slice(开始[,结束])
startAn表示从0开始的整数 开始选择元素的位置。如果是否定的话 表示从集合末尾的偏移量。endAn整数表示 基于0的位置,元素停止被选中。如果 否定,它表示从集合末尾的偏移量。如果省略, 范围一直持续到集合结束。
以下是您要实现的目标的working demo