3

我在XP上使用IE 6(企业强制版),以及(主要是)Firefox 3.在这些中,我使用prototype.js库版本1.6.0.3制作DHTML表。prototype.js - 在IE 6下忽略Element.insert(Element)?

我有事件处理程序JavaScript代码添加一行到表,它在Firefox下工作正常,但在Internet Explorer下完全忽略。我可以遍历MS“脚本调试器”中的代码(是的,我知道它已经过时并且不推荐使用,但它可用),所以我知道事件正在被吸引。

的代码是形式的东西:

var xTable = $('x_list') // id of x... 
var aRow = new Element('tr') 
aRow.setAttribute('id', id) 
. . . 
var xEl = new Element('td') 
. . . 
aRow.insert(xEl) 
. . . 
// alert(aRow.inspect()) 
// alert(xTable.inspect()) 
debugger // check insert() implementation under IE 
xTable.insert(aRow) 

有其他人曾与Element.insert()和浏览器之间的冲突的经验?

+0

谢谢(同时回答者),添加嵌套的标签工作得很好。 – Roboprog 2009-06-02 21:15:12

回答

6

您必须将新的TR元素插入到TBODY中,而不是直接插入TABLE中。否则IE不会显示/插入/不管它。

2

尝试在您正在使用的<table>内创建一个<tbody>元素,然后附加到该元素而不是<table>

这是我第一次尝试。我隐约记得,如果没有<tbody>元素,表格的Javascript操作很奇怪。

1

slosd完美地回答了它,只是一点补充:TBODY在IE7中也是必需的,但在IE8中是不需要的。