Javascript innerHTML / jQuery .html()IE显示错误 - 将表添加到div

时间:2011-10-25 21:18:48

标签: javascript jquery internet-explorer

我正在使用AJAX调用脚本来生成HTML表格。

从脚本的输出中获取表格的HTML后,我用新的HTML替换了目标容器div的HTML。

e.g。 $('#table_container').html(data); 或...... document.getElementById('table_container').innerHTML(data);

在Firefox中,表格会根据我的需要显示在div中。

在Internet Explorer中,显示表格,然后在表格下方,有一些额外的文本,通常是从表格中的(看似)随机位置取得的10-20个字符。

我已通过W3C验证器验证了ajax调用中的HTML。 我在我的页面类型中使用了doctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

为什么IE会显示这个额外的文字?

4 个答案:

答案 0 :(得分:2)

我个人总是有更好的运气:

$("#table_container").empty();
$("#table_container").append(data);

答案 1 :(得分:0)

我不知道底层问题的根源是什么,我不知道这是否有帮助,但您可以尝试使用remove()和appendTo()并查看IE是否正确处理它。根据我的经验,这通常会更好。

$(data).appendTo($('#table_container'));

此外,如果可以链接到实际网站,我可能会进一步提供帮助。

答案 2 :(得分:0)

听起来你的字符串中有一些文字打破了表格。

尝试使用

$string = htmlentities($string);

在表格单元格中的字符串......

答案 3 :(得分:0)

感谢大家的建议。

事实证明,问题在于表中的空白单元格。

这会导致错误:

<td></td>

这是可以接受的:

<td> </td>

奇怪的是(对我而言)是,如果我将HTML转储到平面.html文件并查看它,那就没问题了。但是当我使用JS将相同的HTML标记添加到div时,就会出现问题。

C'est la IE! : - )