Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何获取元素在 childNode 列表中的位置?
例如
<a> <b></b><!-- return 0 --> <c></c><!-- return 1 --> </a>
我不认为Element, Node, 或NodeList提供获取此信息的直接方法,但编写自己的快速函数很容易做到这一点:
Element
Node
NodeList
int indexOfNode(Node node) { int index; Node sibling; index = 0; while ((sibling = node.getPreviousSibling()) != null) { node = sibling; ++index; } return index; }
我认为除了重复调用getPreviousSibling()直到它返回 null 或遍历父节点的子列表直到找到==与您开始使用的节点相同的子列表之外,没有其他直接的方法。
getPreviousSibling()
==
顺便说一句,在您在问题中给出的文档中,b元素在其父子列表中的索引为 1,并且该c元素的索引为 3,因为它们之间只有空白文本节点(一个在开头a和开头之间b,另一个在在关闭b和打开之间c)。
b
c
a