2013-06-25 2 views
4

Есть ли способ пересечь DOM по кругу? Например, когда вы добираетесь до конца списка, он возвращается назад к началу?Циркулярное пересечение в jQuery?

Вот пример, который не работает, но мы надеемся, иллюстрируют эффект, я хотел бы достичь:

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

$('li.four').next().addClass('one'); 
+0

[ссылка] http://stackoverflow.com/questions/10004593/how-jquery-data-breaks-circular-reference – pl71

ответ

5

Там нет ничего встраивается, но вы можете тривиальным написать свой собственный метод; (http://jsfiddle.net/sszRN/);

$('li.four').nextOrFirst().addClass('one'); 
+0

Только то, что я был в процессе typing :) –

+0

@MikeBrant: Великие умы думают одинаково;) – Matt

+0

Perfect. Бесконечно благодарен. –

0

Не совсем уверен, что вы просите или пытаетесь достичь здесь, но если вы просто хотите добавить класс к первому элементу вы можете сделать это

Траверсом йота найти родительский элемент

Найти первый ребенок этого элемента - как этого

$('li.four').parent().find(">:first-child").addClass('one');

2

Я иногда использую

var $next = $($(this).next()[0] || $(this).prevAll().addBack()[0]); 

да, с ума: D