有没有办法在一个圆圈中遍历DOM?比如,当你到达列表的末尾时,它会循环回到开头?
这是一个不起作用的例子,但希望能够说明我想要实现的效果:
<ul>
<li></li>
<li></li>
<li></li>
<li class="four"></li>
</ul>
$('li.four').next().addClass('one');
答案 0 :(得分: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;
};
然后使用like(http://jsfiddle.net/sszRN/);
$('li.four').nextOrFirst().addClass('one');
答案 1 :(得分:2)
我有时会使用
var $next = $( $(this).next()[0] || $(this).prevAll().addBack()[0] );
是的,疯了:D
答案 2 :(得分:0)
不完全确定您在此处要求或尝试实现的目标,但如果您只是想在第一个元素中添加一个类,则可以执行此操作
遍历dom以找到父元素
找到该元素的第一个孩子 - 像这样
$('li.four').parent().find(">:first-child").addClass('one');