Jquery,切片失败后返回什么?

时间:2010-09-24 03:46:07

标签: javascript jquery debugging return-value slice

我无法在任何地方找到这个,你如何检查切片是否仍在列表中返回元素?与$('.class').slice(n-th,n-th);

一样

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

以下是我要完成的示例代码:

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

另外,为什么我的活动没有解除绑定?

感谢您的帮助:)

2 个答案:

答案 0 :(得分: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() 永远不会返回超出剩余元素末尾的内容。很聪明,知道何时停止。

如果你给它一个超过元素数量的终点,它将返回存在的元素,然后它会在没有运行时错误的情况下停止。

答案 1 :(得分:1)

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