javascript - Javascript 中的行索引

标签 javascript internet-explorer dom

我目前对 IE8 中的 rowIndex 有一个大问题。当我调用该页面时,我有一个空表元素。我现在使用 Javascript 向该表添加行和列。

// Create Elements
tr = document.createElement('tr');
td = document.createElement('td');
// Append Elements to existing Table
tr.appendChild(td);
table.appendChild(tr);

用户稍后可以选择删除这些行。要删除它们,我只需调用表的 deleteRow 函数并将 rowIndex 作为参数传递。

table.deleteRow(tr.rowIndex);

在 Firefox 中这工作正常。 rowIndex 正确,可以删除行。在 IE8 中,rowIndex 始终为 -1。 deleteRow 函数 - 当然 - 找不到匹配的行并且该行未被删除。

有谁知道这个问题并且有好的解决方案吗?

最佳答案

如果行在表格中但表格未附加到文档,IE 仍会为您提供 -1 rowIndex。

您可以通过将表格添加到文档来修复它,但通过简单地使用通用 DOM Level 1 Core 方法而不是特定于表格的 DOM-HTML 方法可能更容易避免此问题:

tr.parentNode.removeChild(tr);

最好创建一个 tbody 元素并将行放入其中;否则浏览器可能会意外地为你做这件事。

关于javascript - Javascript 中的行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1524090/

相关文章:

javascript - 我想在单击 "Add To Chart"并且通知成功或失败时使用 ajax laravel 发出通知

javascript - Internet Explorer 8-Youtube JSONC API出现SCRIPT1010错误

html - 网站适用于任何浏览器,但不适用于 ie 6 和 7

javascript - 如何使用 Firebug 跟踪事件?

javascript - jquery 验证 javascript

javascript - 使用 React 重新渲染时 Highcharts Y 轴覆盖

JavaScript 无法在 IE7 和 IE8 中运行

javascript - 是否有获取 XML 节点的平面字符串表示形式的默认机制?

javascript - 是否有可能在循环中发生 “buffer” DOM 更改(以提高性能)?

javascript - 将目标的子级发送到 JQuery 中的函数