【问题标题】:IE7 and jQuery .html / .empty / .css not firingIE7 和 jQuery .html / .empty / .css 没有触发
【发布时间】:2023-03-12 12:56:01
【问题描述】:

我有一个页面使用了一组由 page_load 上的 .NET 转发器生成的表。这些表可以具有以下两个类之一:fileExistsfileDoesNotExist。在document.ready,我有以下内容:

$document.ready(function () {
    $('.fileDoesNotExist').each(function () {
        $(this).html("<h3>FILE #" + $(this).attr('id').replace('T', '') + ":</h3><p><a href=\"/cp/media-upload.aspx?seq=" + $(this).attr('id').replace('T', '') + "\">click here to upload an MP3 or video</a></p>");
        $(this).css('border', 'none');
    });
});

这应该会影响这部分 HTML(涉及的元素更多,但这是基本要点):

<table class="fileDoesNotExist" style="width: 100%;margin-top: 1em;" id="T1">
        <tr>
            <th colspan="3">FILE 1</th>
        </tr>
        <tr>
        <td>Media Title:</td>
            <td colspan="2">
                <input name="txtTitle" type="text" maxlength="255" size="50" id="txtTitle" />
            </td>
        </tr>
</table>

此代码在 Chrome、Firefox、IE8 和 IE9 中运行良好。当试图在 IE7 中查看页面时,它什么也不做。我可以在 IE9 中使用 IE7 标准的文档模式复制它,当尝试直接在控制台中运行脚本时,它什么也不做,也不返回任何有用的错误消息。

.each 绝对正确触发(我用alert($(this).attr('id')); 替换了$(this).html,并用fileDoesNotExist 类吐出了表的ID)但似乎html/css 替换只是' t服用。

IE7 有什么时髦的东西(除了,你知道,它是 IE7)我在这里缺少吗?我查看了与我的主题列出的建议问题,但似乎没有任何内容涉及 .html 或 .css 根本没有触发。

【问题讨论】:

  • 请发布您的 HTML 的 sn-p。
  • 完成。这不是完整的表格,但它是基本要点。我对标签进行了双重和三重检查,以确保一切都符合正常的 DOM 标准,所以我认为那里没有问题,但我可能会走得很远。
  • 这是在黑暗中的一个镜头:也许 IE7 不喜欢 ID 以数字开头的情况。也许如果你把它改成以字母开头的IE会很高兴?
  • @Jeff 不错,在您的评论在 SO stackoverflow.com/questions/5672903/… 上找到此内容后
  • @Dampsquid 不错!我粗略地搜索了ie7 numeric id,但没有找到任何东西。我很高兴你比我更成功。我想我应该回答而不是发表评论来收集 15 个代表? :)

标签: jquery internet-explorer-7


【解决方案1】:

根据我们在 cmets 中的讨论,ID 不应以数字开头。

【讨论】:

  • 不幸的是,这似乎并没有解决问题。后面的代码生成的 ID 现在是“T#”(其中 # 是它正在寻找的文件的序列整数),但它仍然不接受 jQuery。我将保留该修复程序,因为我同意以 alpha char 开头的 ID 是有意义的,但实际的 jQuery 问题仍然存在。 =/
【解决方案2】:

在应用于 Table 或 TBody 元素时,似乎无法在 IE7 中安全地使用 innerHTML。 这里有几个参考。

InnerHTML in IE7 problems

jQuery .html() not displaying any data in ie7, but ie8 works

希望有帮助,两者都提供解决方法

编辑

由于您的代码将 Table 元素的内容替换为纯 html(无 tr/td 标记),为什么不将您的表放在包含 div 中并将 fileExists / fileDoesNotExist 类应用于该 div。

JSFiddle with outer div

【讨论】:

  • 是的。做到了。将其从表格布局更改为使用 div,并且效果很好。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多