索引 dom 元素
Indexing the dom elements
我正在尝试在 javascript/jquery 中实现一个算法(递归),它遍历 DOM 和 returns 我每个 HTML 元素的索引,包括parents,兄弟姐妹和 children。然后画一棵树DOM。
我需要通过将索引 attr 添加到索引为字符串的元素来索引每个元素。例如:
<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>
实现该目标的最佳方法是什么?有什么想法吗?
通过简单的迭代你可以实现这个
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);
我正在尝试在 javascript/jquery 中实现一个算法(递归),它遍历 DOM 和 returns 我每个 HTML 元素的索引,包括parents,兄弟姐妹和 children。然后画一棵树DOM。 我需要通过将索引 attr 添加到索引为字符串的元素来索引每个元素。例如:
<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>
实现该目标的最佳方法是什么?有什么想法吗?
通过简单的迭代你可以实现这个
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);