【问题标题】:What's the best way in Javascript to delete row from html table?Javascript中从html表中删除行的最佳方法是什么?
【发布时间】:2017-06-13 04:44:22
【问题描述】:
在 Javascript 中从 html 表中删除行的最佳方法是什么?
元素<td> 包含 colspan 和 rowspan more 1。
DOM 中的函数 deleteRow() 没有考虑 colspans 和 rowspans。
【问题讨论】:
标签:
javascript
html-table
row
【解决方案1】:
听起来您的表格正在折叠,因为每行中的单元格数量不再相等。这是可以预料的。您需要替换受影响行中缺失的单元格。
Colspan 不应该是一个问题,因为它全部在被删除的一行上。然而,行跨度会影响其他行,所以:
1) 使用 getElementsByTagName,从 tr 节点(不是文档)获取所有 td 元素,然后遍历它们以使用 getAttribute 检查 rowspan 属性
2) 如果其中一个属性以数字形式返回,您需要遍历那么多行减去 1,并在可能存在行跨度的点插入一个 td。
如果还有 colspan 正在进行,您将需要跟踪这些以确定 td 真正在哪一列。当您插入新的 td 时,您还必须注意后续行中的 colspan。
3) 如果您想在后面的行中重新添加内容,您可能需要抓取原始 td 的 innerHTML 或子节点并将它们存储在内存中,一旦删除该行,内容也将消失。
4) 完成此操作后,现在终于可以安全地删除该行了。
【解决方案2】:
如果你已经加载了 jQuery
$('tr#id_of_the_row').remove();