IE7和jQuery .html / .empty / .css没有解雇

时间:2012-03-21 13:25:57

标签: jquery internet-explorer-7

我有一个页面使用由pagedload上的.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肯定是正确触发的(我用$(this).html替换了alert($(this).attr('id'));,并用fileDoesNotExist类吐出了表的ID,但似乎是html / css替换只是没有采取。

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

2 个答案:

答案 0 :(得分:3)

根据我们在评论中的讨论,您不应该使用数字来启动ID。

答案 1 :(得分:2)

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

InnerHTML in IE7 problems

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

希望有所帮助,两者都能提供周到的工作

修改

由于你的代码用普通的html(没有tr / td标签)替换了Table元素的内容,为什么不把你的表放在一个包含的div中,而是将fileExists / fileDoesNotExist类应用到那个div。

JSFiddle with outer div