0

如何获取元素在 childNode 列表中的位置?

例如

<a>
  <b></b><!-- return 0 -->
  <c></c><!-- return 1 -->
</a>
4

2 回答 2

4

我不认为Element, Node, 或NodeList提供获取此信息的直接方法,但编写自己的快速函数很容易做到这一点:

int indexOfNode(Node node) {
    int index;
    Node sibling;

    index = 0;
    while ((sibling = node.getPreviousSibling()) != null) {
        node = sibling;
        ++index;
    }

    return index;
}
于 2013-03-05T11:40:16.837 回答
0

我认为除了重复调用getPreviousSibling()直到它返回 null 或遍历父节点的子列表直到找到==与您开始使用的节点相同的子列表之外,没有其他直接的方法。

顺便说一句,在您在问题中给出的文档中,b元素在其父子列表中的索引为 1,并且该c元素的索引为 3,因为它们之间只有空白文本节点(一个在开头a和开头之间b,另一个在在关闭b和打开之间c)。

于 2013-03-05T11:42:29.243 回答