好的,所以这就是我所拥有的:
我有一个缓存在变量中的元素列表:
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();
显然,上述方法无效。 : - )
提前感谢您的帮助!
-Tim。
答案 0 :(得分:2)
我相信next()
和prev()
处理DOM元素,而不是查询返回的jQuery节点列表。因此,您必须手动处理jQuery对象中nodeList的索引。
尝试:
// 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