Javascript中的RowIndex

时间:2009-10-06 07:34:30

标签: javascript internet-explorer dom

我目前在IE8中的rowIndex存在很大问题。当我调用页面时,我有一个空表元素。使用Javascript,我现在将Rows和Columns添加到此表中。

// 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函数 - 当然 - 找不到匹配的行,并且行不会被删除。

有没有人知道这个问题并为此提供了一个很好的解决方案?

2 个答案:

答案 0 :(得分:3)

如果行在表中但是表没有附加到文档中,IE仍然会给你一个-1 rowIndex。

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

tr.parentNode.removeChild(tr);

最好创建一个tbody元素并将行放入其中;否则浏览器可能会意外地为您执行此操作。

答案 1 :(得分:2)

您可以尝试removeChild

这很简单:

table.removeChild(tr);