在表中查找TD的位置
Finding the location of a TD in a table
假设我有一个表格,我想在其中操作一个特定的<td>
:
<table>
<tr><td>1</td> <td>2</td></tr>
<tr><td>3</td> <td>4</td></tr>
<tr><td id="hi">5</td> <td>6</td></tr>
</table>
Javascript: document.getElementsByTagName("table")[0].rows[2].cells[0];
这将帮助我到达表中的特定单元格。
我的问题是:
假设我在一个表中有一个特定的<td>
:
var td = document.getElementById("hi")
我想知道它在表中的位置,所以我可以使用table.rows[x].cells[y]
到达它我如何查看这个位置?
我建议,正如您所暗示的那样,您知道要查找哪个特定的单元格,尽管目前尚未测试:
var td = document.getElementById("hi"),
col = td.cellIndex,
row = td.parentNode.rowIndex;
td
元素的cellIndex
属性给出了行中单元格的索引。tr
元素的rowIndex
属性给出了表中该行的索引。
var td = document.getElementById("hi");
var x = td.cellIndex;
var y = td.parentNode.rowIndex;
您需要这样做:
function getRowCellPosition(table, cell) {
for (var i = 0; i < table.rows.length; i++) {
for (var j = 0; j < table.rows[i].cells.length; j++) {
if (table.rows[i].cells[j] === cell) {
return {
row: i,
cell: j
};
}
}
}
return null;
}
或更简单:
function getRowCellPosition(cell) {
return {
row: cell.parentNode.rowIndex,
cell: cell.cellIndex
}
}
只需创建一个for循环,遍历每一行和每一列,并将该索引中的TD与您想要的TD进行比较。
试试这个:
行:Array.slice(el.parentNode.parentNode.children).indexOf(el.parentNode)
上校:Array.slice(el.parentNode.children).indexOf(el)
切片魔术是因为el.parentNode.children
不是一个数组。
td.cellIndex
和tr.rowIndex
。
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- 正在获取生成的PHP td值
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- HTML固定标题-将位置th与td在同一级别上对齐
- 正在查找表行中的td元素位置
- 使用绝对位置的 TD 的位置子项
- 表单元格(td)相对于表行(tr)的绝对位置
- 添加<td>到表的一行,但不是全部更改行位置
- 让某些td's交换位置
- 在表中查找TD的位置
- 如何求出同一位置下一行td的索引
- 使用javascript动态添加td到html表的特定位置
- 让td's平稳地滑动并适应它们的新位置