我有一些嵌套表,我想在点击其中一个顶级行时隐藏/显示。
简而言之,标记是:
<table> <tr> <td>stuff</td> .... more tds here </tr> <tr> <td colspan=some_number> <table> </table> </td> </tr> </table>
现在,我正在使用一些jQuery来定位第一个表行中的链接。单击该链接时,它会向下拉一些数据,将其格式化为一堆表行,并将其附加到表中。然后它将.show()应用于表。 (这都是通过id / class targeting完成的。为了简洁,我将它们从样本中删除了。)
这在firefox中运行得非常好。单击链接,数据加载,主表“扩展”,辅助表都很好并填写。
问题是 - Internet Explorer正在给我指责。据我所知,数据被附加到内部表。问题是.show()似乎没有做任何有用的事情。为了让事情变得更烦人,我有一个具有这种功能的页面在两者中都非常出色 - 唯一的区别是两件事:
在正在工作的那个中,内部表被包裹在div中。我甚至试图在这个例子中将我的表包装在div中但没有成功。 在没有工作的那个,我有一个额外的jQuery插件加载 - 但我删除了这个插件并尝试了没有它的页面,它仍然无法显示内部表。
我尝试将.show附加到父tr,父td和表本身但没有成功。我必须遗漏一些非常简单的东西,因为尽可能接近我应该这样做。
有没有人遇到过这样的事情?
答案 0 :(得分:6)
请记住&lt; table&gt;的innerHTML IE中的元素是只读(6肯定,不确定7)。既然如此,您是否明确添加&lt; tbody&gt;元件?如果没有,请尝试添加一个并将行添加到body元素而不是表元素。
<table>
<tbody>
<!-- Add stuff here... -->
</tbody>
</table>
Microsoft信息(排序):PRB: Error Setting table.innerHTML in Internet Explorer注意:它说这是“按设计”。
答案 1 :(得分:1)
IE中有一堆错误与从Javascript修改表的内容有关。在很多情况下,IE(包括IE7)甚至会崩溃。
我最近遇到了这个问题,而且我在解决这个问题上的消息。让我回顾一下我的日志,看看我能找到什么。
好的,我找到了遇到的情况。
我做了类似的事情。我有一张桌子,我正在尝试添加<td
&gt;通过Javascript标记其中的链接,这导致IE7中出现内存异常。
最后,我唯一可以解决的问题是重建整个<table
&gt;在Javascript中而不是尝试将内容插入到现有内容中。
为了澄清,通过重建,我的意思是创建一个包含表格HTML的字符串,并将其添加到div的innerHTML中。我没有使用DOM函数来创建表。