如何在childNode列表中获取Element的位置?
e.g。
<a>
<b></b><!-- return 0 -->
<c></c><!-- return 1 -->
</a>
答案 0 :(得分:2)
我不认为Element
,Node
或NodeList
提供了获取此信息的直接方法,但编写自己的快速功能很容易做到:< / p>
int indexOfNode(Node node) {
int index;
Node sibling;
index = 0;
while ((sibling = node.getPreviousSibling()) != null) {
node = sibling;
++index;
}
return index;
}
答案 1 :(得分:0)
除了重复调用getPreviousSibling()
直到它返回null或遍历父节点的子列表,直到找到==
时,我才认为这是一种直接的方法。 {1}}到您开始使用的节点。
顺便说一句,在您在问题中提供的文档中,b
元素在其父级子级列表中是索引1,而c
元素是索引3,因为那里是中间仅有空白的文本节点(开头a
和开放b
之间的一个,另一个在结束b
和开放c
之间)。