问题描述
我正在尝试在 javascript/jquery(递归)中实现一个算法,它遍历 DOM 并返回每个 HTML 元素的索引,包括父元素、兄弟元素和子元素。 然后绘制一棵DOM树。 我需要通过向元素添加索引属性来索引每个元素,索引作为字符串。 例如:
<html>
<...>
<body>
<div index="1">
<div index="1.1">
<h2 index = "1.1.1">some text1</h2>
<h2 index = "1.1.2">some text</h2>
</div>
</div>
<div index="2">
<table index="2.1">
<tr index="2.1.1">
<td index="2.1.1.1">some cell</td>
<td> index = "2.1.1.2">some cell</td>
</tr>
<tr index="2.1.2">
<td index="2.1.2.1">some cell</td>
</tr>
</table>
</div>
<div index="3">
<h1 index="3.1">some text</h1>
</div>
</body>
</html>
实现这一目标的最佳方法是什么? 有任何想法吗?
1楼
Matteo Rubini
2
已采纳
2015-07-30 14:20:09
通过简单的迭代,您可以实现这一目标
function loop(el, isChild){
for(var i=0; i<el.children.length;i++){
var child = el.children[i];
child.index = (isChild?(el.index + '.'):'') + (i+1);
loop(child,false);
}
}
loop(document.body);