【发布时间】:2011-11-01 05:56:51
【问题描述】:
我一直在互联网上搜索这个,我很难过。以下 Javascript 可在 Chrome、Firefox 和 Safari 中使用,但无论出于何种原因,它在 IE 7+ 中都无法使用。我所说的“不工作”是指在尝试添加表格元素时,浏览器/屏幕上没有显示任何内容。我使用了 IE 的内置开发者工具,在控制台的调试器上什么也没有显示。
简而言之,我要做的就是创建表格行,在第一列中包含复选框,在第二列中包含纯文本。此外,这整个方法是在 AJAX 事件之后调用的。
代码如下:
tdObjs[0].innerHTML = '<input type="checkbox" name="page" value="' + pageID + '"
onClick="fooFunction(\'' + pageID + '\', this,
\'_images/foo/' + pageID + '.png\', \'' + pageID
+ '\')" checked="yes">';
其中pageID 是传递给此函数的变量(在此确切示例中,它的int 值为5)。 tdObjs 定义为:
var tdObjs = trObj.getElementsByTagName('TD');
并且trObj 被传递到这个函数中。 trObj 确实显示在 IE 开发工具的 local 窗口中,因为它是在另一个函数中定义的,如下所示:
var tableObj = $('##FooTable')[0];
var trObj = document.createElement('tr');
trObj.appendChild(document.createElement('td'));
for (var i=0;i<2;i++)
trObj.appendChild(document.createElement('td'));
tableObj.appendChild(trObj);
return trObj;
有什么想法吗?提前谢谢你。
【问题讨论】:
-
innerHTML 和 IE 中的表格不能一起使用。在设置单元格的 innerHTML 属性之前尝试将表格放入文档中。
-
太棒了....哦,IE大声笑...无论如何,表格已经添加为纯HTML,并且在此函数调用之前,我正在删除该表格中的所有行。那么,我是否应该重新设置表(换句话说,在我删除行时将其删除)然后重新设置它?然后从那里添加行/列?
-
我不知道你在做什么,但是如果你直接向表格元素添加行,在 IE 中会失败,你必须将它们添加到 tbody 元素(tbody 是强制性的,尽管标签是可选的,但即使您省略了标签,表格中也总会有一个 tbody)。如果只有一个(即您没有任何标签),您可以将其引用为 table.tBodies[0]`
标签: javascript internet-explorer innerhtml