我正在使用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会显示这个额外的文字?
答案 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! : - )