我目前在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函数 - 当然 - 找不到匹配的行,并且行不会被删除。
有没有人知道这个问题并为此提供了一个很好的解决方案?
答案 0 :(得分:3)
如果行在表中但是表没有附加到文档中,IE仍然会给你一个-1 rowIndex。
您可以通过将表添加到文档来修复它,但是通过简单地使用通用DOM Level 1 Core方法而不是特定于表的DOM-HTML方法来避免问题可能更容易:
tr.parentNode.removeChild(tr);
最好创建一个tbody
元素并将行放入其中;否则浏览器可能会意外地为您执行此操作。
答案 1 :(得分:2)
您可以尝试removeChild
。
这很简单:
table.removeChild(tr);