有什么办法可以循环遍历 DOM 吗?就像,当你到达列表的末尾时,它会循环回到开头?
这是一个例子,它不起作用,但希望能说明我想要达到的效果:
<ul>
<li></li>
<li></li>
<li></li>
<li class="four"></li>
</ul>
$('li.four').next().addClass('one');
没有内置任何东西,但您可以轻松编写自己的方法;
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;
};
然后使用喜欢(http://jsfiddle.net/sszRN/);
$('li.four').nextOrFirst().addClass('one');
我有时用
var $next = $( $(this).next()[0] || $(this).prevAll().addBack()[0] );
是的,疯了 :D
不完全确定您在这里要求或尝试实现什么,但如果您只想向第一个元素添加一个类,您可以这样做
遍历dom找到父元素
找到该元素的第一个孩子 - 像这样
$('li.four').parent().find(">:first-child").addClass('one');