作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想给表中的每个元素一个生成的 ID。请参阅下面的 html 表:
<table>
<tbody>
<tr>
<td>A1</td>
<td>A2</td>
<td>
<a href="#">A3</a>
</td>
</tr>
<tr>
<td>B1</td>
<td>B2</td>
<td>
<a href="#">B3</a>
</td>
</tr>
<tr>
<td>C1</td>
<td>C2</td>
<td>C3</td>
</tr>
</tbody>
</table>
我想使用广度优先遍历为每个元素指定一个 id。于是,结果变成了这样:
<table>
<tbody id="0">
<tr id="1">
<td id="4">A1</td>
<td id="5">A2</td>
<td id="6">
<a href="#" id="13">A3</a>
</td>
</tr>
<tr id="2">
<td id="7">B1</td>
<td id="8">B2</td>
<td id="9">
<a href="#" id="14">B3</a>
</td>
</tr>
<tr id="3">
<td id="10">C1</td>
<td id="11">C2</td>
<td id="12">C3</td>
</tr>
</tbody>
</table>
我已经在 jQuery 中尝试过 each()
函数为该表中的每个元素生成 id,但是 each()
函数中使用的遍历算法是预顺序遍历。
任何人都可以建议我执行此操作的 Javascript 代码吗?
最佳答案
var n = 0
var level = $("table");
while (level.children().length) {
level = level.children().each(function(_, el) {
el.id = n++;
})
}
演示: http://jsfiddle.net/J5QMK/
如果你想避免多余的 .children()
调用,你可以这样做:
while ((level = level.children()).length) {
level.each(function (_, el) {
el.id = n++;
})
}
关于javascript - Javascript 中的广度优先遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16526641/
所以我有一个有向图,我添加了顶点和边。该图表示机场和它们之间的航类。当我运行广度优先或深度优先搜索以找到两个机场之间的路径时,我第一次得到了正确的答案,但是当我第二次使用完全相同的机场运行它时,它找不
我是一名优秀的程序员,十分优秀!