Найти брата элемента в списке элементов - PullRequest
2 голосов
/ 30 августа 2010

Хорошо, вот что у меня есть:

У меня есть список элементов, кэшированных в переменной:

elementList = $(".list-of-elements-with-this-class");

У меня также есть динамически сгенерированный элемент из этого списка, кэшированный в другой переменной:

elementList.click(
    function()
    {
        cachedItem = $(this);
    }
);

Что я хочу сделать, это найти cachedItem в elementList, а затем выбрать предыдущего или следующего брата cachedItem в списке.

Так что псевдокод будет выглядеть так:

nextCachedItem = elementList.find(cachedItem).next();

или

prevCachedItem = elementList.find(cachedItem).prev();

Очевидно, вышесказанное не работает. : -)

Заранее спасибо за помощь!

-Tim.

1 Ответ

2 голосов
/ 30 августа 2010

Я считаю, что next() и prev() имеют дело с элементом DOM, а не с нодлистом jQuery, возвращаемым запросом. Поэтому вам приходится иметь дело с индексами списка узлов в объекте jQuery вручную.

Попытка:

// RAW DOM Nodes
elementList.get(elementList.index(cachedItem) - 1); // previous
elementList.get(elementList.index(cachedItem) + 1); // next

OR

// jQuery Objects/Node list
elementList.eq(elementList.index(cachedItem) - 1); // previous
elementList.eq(elementList.index(cachedItem) + 1); // next
...