好的,这就是我所拥有的:

我有一个缓存在变量中的元素列表:

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


我还从该列表中动态生成了一个元素,该元素缓存在另一个变量中:

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


我想做的是在elementList中找到cachedItem,然后在列表中选择cachedItem的上一个或下一个同级。

因此伪代码如下所示:

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


要么

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


显然,以上方法不起作用。 :-)

谢谢您的帮助!

蒂姆

最佳答案

我相信next()prev()处理DOM元素,而不是查询返回的jQuery节点列表。因此,您必须手动处理jQuery对象中的节点列表的索引。

尝试:

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


要么:

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

10-07 14:10