1

我想找到一种方法来判断两个 DOM 元素之间的距离。不是像素,而是遍历步骤。

它的实际用途如下:有一个核心元素,需要在站点中找到其他类似的元素,并模仿最密切相关的行为。

例如,在选项卡中没有设置宽度的画廊。不可见的选项卡可能没有宽度,因此选项卡中的图库将不可见,除非在显示选项卡时重新初始化它。隐藏的画廊将是核心元素,它将寻找画廊的另一个可能的正常工作实例并复制其宽度以便工作。工作图库可以在第一个选项卡中,也可以在内容中,或者在侧边栏或页脚中的小图库中。我想要的是它“知道”最接近的相关其他实例是另一个选项卡上的实例,而不是页脚中的实例。由于这是一个 WP 插件,我无法对任何内容进行硬编码,而且该场景不仅限于选项卡。

.closest()不适用于此目的。

4

1 回答 1

2

我发现为此目的,最有效的解决方案是:

var commonParentsDepth = a.parents().has(b).first().parents().length;

你会得到一个数字,告诉你这两个元素的共同祖先有多深。您在一个循环中对多个元素执行此测试,一次比较两个,其中一个不会改变。您将能够通过结果判断两个元素是否比其他元素更密切相关。数字越大,两个元素的树越深,这意味着它们越接近。

注意:这不适用于将两个元素与另外两个元素进行比较。

我结合了这两个有点相关的问题:

于 2013-04-26T13:30:48.110 回答