【发布时间】:2012-01-17 21:55:33
【问题描述】:
有没有办法检测一个元素是出现在标记中的另一个元素之前还是之后?这无论在 DOM 中的位置如何。它可以是孩子、兄弟姐妹、父母或父母的父母。这是一个普遍的问题,所以没有可分享的标记。
澄清一下 - 这是关于元素在标记中的位置,而不是它的显示位置。现在我想起来我的问题有点奇怪,因为如果你有元素 X 和元素 Y,那么你可以有这些场景。
//in regards to y
<x />
<y /> //:after
<y /> //:before
<x />
<x><y /></x> //not really before or after is it?
【问题讨论】:
-
标记中的位置 = DOM 中的位置
-
后面是什么意思?您是指该页面语言的读者扫描它的方式之后吗?对于英文读者来说,在页面上如此低或在相同的高度和右侧?
-
@MikeSamuel - 我的意思是好像你真的打印了标记。我想可能有三种状态。之前,之后或(都不)的孩子
-
在第三个示例中,
y通常会被视为之后x。 DOM 选择按文档顺序返回元素,因此x将被视为最先出现。 -
node.compareDocumentPosition有一个跨浏览器 shim,由 @Raynos 在 stackoverflow.com/a/8334758/6782 编写
标签: javascript jquery