我有一个容器,里面有几个div。每次只应该有一个div。容器本质上只是一个div的jQuery滑块。它应显示并隐藏下一个/ prev div,具体取决于您单击的按钮,但它会在以下行返回错误:
children[current--].show();
我不确定为什么会这样。我正在调用children(一个数组)然后尝试使用int--访问索引,然后显示它,但它从未显示。
这是一个jsFiddle:http://jsfiddle.net/n6fW7/1/
HTML:
<div id="container">
<div id="content">
<div id="prev" class="arrow">></div>
<div id="next" class="arrow"><</div>
</div>
</div>
jQuery的:
$(function(){
$('#content').append('<div class="box"><p class="title">1</p><p class="text">abc</p></div><div class="box"><p class="title">2</p><p class="text">efg</p></div>');
var children = $('#content').find('.box');
var count = children.length;
var current = 1;
$('.box').not(children[0]).hide();
$('.arrow').click(function(){
var where = $(this).attr('id');
if(where == 'next'){
if(current != count){
current++;
}
}
else{
// previous
if(current > 2){
current--;
}
}
$('.box').hide();
children[current--].show();
});
});
答案 0 :(得分:2)
在jQuery对象中使用索引器返回原始DOM元素,该元素不包含show()
函数。您可以使用eq()
函数而不是索引器,它返回一个包装DOM元素的jQuery对象:
children.eq(current--).show();