javascript - 如何获取表格的单元格索引?
问题描述
我正在编写这个 javascript 代码,并且每当我用鼠标遍历它们时,我都会尝试获取每个单元格的索引。
const table = document.createElement("table");
document.body.appendChild(table);
let width = 10;
let height = 10;
table.innerHTML = "";
let content = "";
for (let i = 0; i < width; i++) {
content += "<tr>";
for (let j = 0; j < height; j++) {
content += "<td></td>";
}
content += "</tr>";
}
table.innerHTML += content
const cell = document.getElementsByTagName("tr");
cell.addEventListener('mouseover', getIndex());
解决方案
首先,您应该等到填充表格之后再将其附加到正文。
然后,当getElementsByTagName
返回一个节点列表时,您需要对其进行迭代并将一个事件侦听器附加到每个单元格。此时获取所有单元格而不是行可能更容易。
然后从事件侦听器回调中,您可以使用 访问单元格索引,使用 访问this.cellIndex
行索引this.parentNode.rowIndex
const table = document.createElement("table");
let width = 10;
let height = 10;
table.innerHTML = "";
let content = "";
for (let i = 0; i < width; i++) {
content += "<tr>";
for (let j = 0; j < height; j++) {
content += "<td>X</td>";
}
content += "</tr>";
}
table.innerHTML += content;
document.body.appendChild(table);
const cells = document.getElementsByTagName("td");
Array.from(cells).forEach(cell => {
cell.addEventListener("mouseover", function() {
const rowIndex = this.parentNode.rowIndex
const cellIndex = this.cellIndex
console.log(`rowIndex: ${rowIndex}, cellIndex: ${cellIndex}`);
});
});
推荐阅读
- django - 谷歌地图和django之间的集成
- python - 在 Vue Web 应用程序中运行交互式 Python 脚本的最佳实践
- python - 为什么python不能识别pygame?
- python - Python初学者:如何解决在“str”和“int”实例之间不支持“>”的问题
- python - 为什么 Presidio StanzaNlpEngine 抛出 NameError: name 'StanzaLanguage' is not defined?
- node.js - MERN 堆栈快速路由似乎被忽略(始终挂起)
- r - 从 for 循环打印或返回字符串
- flutter - 颤动:我想显示一个包含文本列表()的换行,包括小时候的换行符,左对齐
- android-studio - 如何通过android studio扫描微条形码(micropdf417)
- r - 查找 group_by 条件为真的行比例的最佳方法