好的,这就是我所拥有的:
我有一个缓存在变量中的元素列表:
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