在完整文档中查找最接近的元素

时间:2013-04-24 14:24:45

标签: javascript jquery

我使用Jquery index索引了我的文档。给定一个索引值,我想'找到''最近'元素与class。这对我不起作用:

$(variableIndexNumber).closest('.class');

原因是有时候.class会改变它的位置,这意味着它可能位于文档的任何位置。有时它的兄弟姐妹,有时是父母,有时会在文件中或在底部。所以通常的selctors next closest first nextAll等对我不起作用(因为文档树)

我可以尝试获得与其他元素(由变量给出)相近的.class

1 个答案:

答案 0 :(得分:2)

使用.prevUntil('.class').nextUntil('.class').parentsUntil('.class'),然后比较它们的尺寸。

无论哪个具有最小尺寸,在DOM结构方面最接近元素。

更新:在此过程中,您还需要.andSelf().filter()和典型的.next().prev()才能真正到达目标你要。演示已更新。您可以看到现在代码更通用。

你可能也需要一个排序功能,正如我在下面的概念验证中所做的那样。

DEMO http://jsfiddle.net/terryyounghk/FzA78/

旁注:没有.childrenUntil(),因为它向外分支DOM树,而不是向内分支到文档根目录,以防你想知道。但我的猜测是,你可以先$('.me').find('.class'),然后为每个人做一个.parentsUntil('.me'),然后比较大小。我不确定这是否会奏效。