循环遍历jQuery?

L_H*_*mbe 4 jquery dom

有没有办法在一个圆圈中遍历DOM?就像,当你到达列表的末尾时,它会循环回到开头?

这是一个例子,它不起作用,但希望能说明我想要实现的效果:

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li class="four"></li>
</ul>

$('li.four').next().addClass('one');
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 5

没有任何内置,但你可以轻松编写自己的方法;

jQuery.fn.nextOrFirst = function (selector) {
    var next = this.next.apply(this, arguments);

    if (!next.length) {
        var siblings = this.siblings();

        if (selector) {
            siblings = siblings.filter(selector);
        }

        next = siblings.first();
    }

    return next;
};
Run Code Online (Sandbox Code Playgroud)

然后使用like(http://jsfiddle.net/sszRN/);

$('li.four').nextOrFirst().addClass('one');
Run Code Online (Sandbox Code Playgroud)