jQuery:如何使用每个从0以外的索引开始

前端之家收集整理的这篇文章主要介绍了jQuery:如何使用每个从0以外的索引开始前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个要循环使用每个元素的集合,但是我在一个外部for循环中循环它们.当我找到我想要的每一个,我返回虚假爆发.下一次外循环运行时,我想在我返回的那个元素之后的每个元素中启动.通用代码示例:
var nextIndex = 0;

for (var j=1; j <= someCount; j++) {
    // do outside loop stuff

    $('#someElemID').find('.someClass').each(function(index) {
        if (/*this is right one*/) {
            // do something
            // next index should get passed to each function next loop... somehow?
            nextIndex = index + 1; 
            return false;
        }
    });
}

我考虑转换到for循环,但是后来我很困惑,如何访问.find(‘.someClass’)的返回.也许这是一个单独的问题本身…

这是明显的吗?

解决方法

使用slice() http://api.jquery.com/slice/
$('#someElemID').find('.someClass').slice(nextIndex).each( ...

btw如果元素是静态的,请考虑缓存:

var $elms = $('.someClass','#someElemID'),nextIndex = 0;

for (var j = 1; j <= someCount; j++) {
    // do outside loop stuff

    $elms.slice(nextIndex).each(function(index) {
        if (/*this is right one*/) {
            nextIndex = index + 1; 
            return false;
        }
    });
}

这应该大大提高性能.

猜你在找的jQuery相关文章