jQuery - 孩子们的麻烦

时间:2014-05-08 03:06:07

标签: javascript jquery html css

我有一个容器,里面有几个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();
    });
});

1 个答案:

答案 0 :(得分:2)

在jQuery对象中使用索引器返回原始DOM元素,该元素不包含show()函数。您可以使用eq()函数而不是索引器,它返回一个包装DOM元素的jQuery对象:

children.eq(current--).show();