javascript - 删除其他行后为表行提供新索引
问题描述
我的代码是一个带有 3 个输入字段的简单表单。一旦用户将它们全部填写并按下按钮,它将在表格中添加一行,其中包含输入数据以及索引号。像这样:
我试图给表中的每一行一个索引号,该索引号与插入的行数是正确的。这可行,但现在我希望它在我从表中删除其中一行时更新索引号。
当客户用他们想要删除的所需索引号填写输入字段然后按下按钮时,将触发以下功能。
function removeRow() {
let tabel = document.getElementById("tabel");
let rows = tabel.getElementsByTagName("tr");
let indexNumber = document.getElementById("indexnumber").value;
Object.entries(rows).forEach(([key]) => {
if(key === indexNumber) {
tabel.deleteRow(indexNumber);
}
})
}
这有效并删除了客户是什么的行,但它不会更新其他行的索引号。因此,当我删除第 5 行时。我的表格将如下所示。
我想我必须遍历所有行并将索引再次设置为正确的数字。谁能帮我吗 :) ?
对于完整的代码检查:
https://codepen.io/Botert/pen/bJLLWL
格兹,
伯特
解决方案
removeRow()
要回答您的问题,请尝试在您的函数中添加以下代码段:
for (var i=1; i<rows.length; i++) {
var dataRow = rows[i].children[3];
dataRow.textContent = i;
}
在这里摆弄:https ://jsfiddle.net/ufszamv4/
这超出了问题的范围,但请考虑对问题采取不同的方法。尝试将您的行放在已删除其属性的对象中。目标是简单地删除一行,而不必更新其余数据。
推荐阅读
- c++ - Xcode 语义问题 refdefenition 或先前定义的代码
- tabulator - 在制表符网格中读取分块 JSON 流
- python - 不同拟合类型的 scipy.odr 输出不一致?
- javascript - Stripe webhook 返回 400 响应
- coldfusion - 在搜索之前获得额外的 OR
- ruby-on-rails - Rails:如何在仅 API 的应用程序中停止请求周期?
- android - Android UnifiedNativeAds 导致内存泄漏
- ruby - 在Ruby中循环更新切片的一部分
- postgresql - Hasura中纬度/经度的几何功能不起作用
- c++ - 根据 C++ 标准的定义实现 `is_similar` 类型特征