0

我在任何地方都找不到这个,你如何检查 slice 是否返回列表中的元素?喜欢$('.class').slice(n-th,n-th);

当通过切片在整个返回类的索引中增加第 n 个变量时,您如何知道切片何时返回无效索引?希望我解释得很好。

这是我要完成的示例代码:

$(window).scroll(function() {
    if(!($('embed').slice(p1,p2).show())){
        $(window).unbind('scroll');
    }
    ++p1;++p2;
}

另外,为什么我的事件没有解除绑定?

感谢您的帮助:)

4

2 回答 2

2

只需测试slice().length一下是否有任何返回,或者您可以针对特定的length.

在你的情况下:

var $mySlice = $('embed').slice(p1,p2); // <== Store slice

  // Check that slice returned 1+ elements
if( $mySlice.length ) { 

      // show them if yes
    $mySlice.show();
} else {

      // unbind if no
    $(window).unbind('scroll');
}

一般来说,你想看看:

$( ... ).slice( ... ).length

以上只是测试 1+ 个元素。如果您正在切割N元素并且想要确保获得完整且完整的结果,只需修改为

if ( $mySlice.length == N ) {

jQuery.slice()永远不会返回超出剩余元素末尾的内容。它足够聪明,知道何时停止。

如果你给它一个超过元素数量的端点,它将返回存在的元素,然后它将停止而不会出现运行时错误。

于 2010-09-24T03:48:04.020 回答
1

如果您传递错误的参数,Slice 只会返回一个空数组。

于 2010-09-24T03:53:08.557 回答