如何测试哪个节点先出现?

www*_*139 6 javascript dom nodes

我有两个存储在变量中的给定节点。是否有一个简单的、资源使用率低的解决方案来查找文档中哪个节点先出现?两个节点都应该是兄弟节点,但可能相隔许多节点。

Ori*_*iol 7

尝试compareDocumentPosition

function theFirst(node1, node2) {
  return node1.compareDocumentPosition(node2)
    & Node.DOCUMENT_POSITION_FOLLOWING ? node1 : node2;
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果节点在不同的树中,结果可能是随机的(但一致)。您可以过滤掉这种情况& Node.DOCUMENT_POSITION_DISCONNECTED并返回 eg undefined