首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Internet Explorer 9无法正确呈现表格单元格

Internet Explorer 9无法正确呈现表格单元格
EN

Stack Overflow用户
提问于 2011-04-27 22:44:16
回答 12查看 42.2K关注 0票数 114

我的网站在IE8,IE7,FF,Chrome和Safari上运行得一直很流畅。现在我正在IE9上测试它,我遇到了一个奇怪的问题:在某些页面中,一些表格数据呈现不正确。

HTML源代码是正确的,并且每次我刷新页面时,给出问题的行都会改变(说实话,问题本身只出现在某些刷新中,而不是所有刷新中)。

使用IE的F12工具,表格结构看起来是正确的,在包含M08000007448的TD之后应该没有空的TD,但它仍然是这样呈现的。

此外,如果我使用F12工具,在工具栏中使用“单击选择元素”工具,并且我尝试单击M08000007448和19之间的空白处,它会选择TR,而不是“隐藏的td”。

我在应用程序中的其他表中也遇到了这个表呈现问题,有人遇到过类似的问题吗?它只发生在IE9中:(

我不知道这是否重要,但这个页面是用ASPNET (webforms)制作的,并使用Jquery和其他一些JS插件。

我尝试保存页面(包含图像),并使用IE9在本地打开它,但问题从未出现。(当然,我检查了所有的表结构,它是好的。标题和所有行都具有相同数量的TD,必要时具有正确数量的列跨度)。

EN

回答 12

Stack Overflow用户

发布于 2011-08-15 11:17:58

我也有完全相同的问题。您可能想要阅读此https://connect.microsoft.com/IE/feedback/details/649949/innerhtml-formatting-issues-on-very-large-tables

如果您的html是从ajax返回的,YOu可以使用javascript删除td之间的空格,然后在响应中将其替换为

代码语言:javascript
复制
response_html = response_html.replace(/td>\s+<td/g,'td><td');
$('#table').html(response_html);
票数 72
EN

Stack Overflow用户

发布于 2011-07-02 15:51:21

我在使用jquery模板填充表时遇到了同样的问题。我只在IE9中的大型数据集(300+)上使用'ghost‘<td>,这些会将外部列推到我的表的边界之外。

我做了一些非常愚蠢的事情来解决这个问题;删除了<td>开始和结束标记之间的所有空格,并保留了与我的表相关的HTML标记。基本上,您希望所有的<td> </td>都在同一行上,没有空格。

示例:

代码语言:javascript
复制
<table>
<tr class="grid_customer_normal">
<td>${primary}</td>
<td>${secondary}</td>
<td>${phone}</td>
<td>${address}</td>
</tr>
</table>
票数 33
EN

Stack Overflow用户

发布于 2013-01-31 07:15:55

给出的解决方案@Shanison只有部分帮助,但如果在任何其他元素之间存在空格,则问题仍然存在,这些元素可以是表内容模型的一部分,如thead、th等。

这是我的同事设计的一个更好的正则表达式。

代码语言:javascript
复制
if (jQuery.browser.msie && jQuery.browser.version === '9.0')
{
    data = data.replace(/>\s+(?=<\/?(t|c)[hardfob])/gm,'>');
}

覆盖所有的表,标题,列组,列,正文,头,脚,tr,td,th元素。

注意: jQuery 1.9中删除了jQuery.browser,并且只能通过jQuery.migrate插件使用。请尝试使用特征检测。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5805956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档