【问题标题】:jQuery append not working in internet explorerjQuery 追加在 Internet Explorer 中不起作用
【发布时间】:2014-05-26 11:47:57
【问题描述】:

我有一个返回 JSON 数据的 jquery 函数: 此功能适用于 Google Chrome,但不适用于 Internet Explorer (v11)。

$(document).ready(function () {

    $.ajax({
        url: "/../Projects/1/_vti_bin/ListData.svc/Prosjectlist?$select=ID,Tittel,Project_typeValue,Project_heading&$filter=(Project_typeValue%20eq%20%27Type1%27)", 
        method: "GET",
        dataType: "JSON",
        headers: { "accept": "application/json; odata=verbose" },
        success: function (data) {
            $('#projectRow').empty();

            $.each(data.d.results, function (index, item) {
                var itemExist = false;
                $.each($('.projectRow').find('h1'), function (index1, item1) {
                    if (item1.innerHTML == item.Project_heading) {
                        itemExist = true;
                        $(item1).parent().append("<h3><a id='" + item.ID + "' class='projectLink' href='#'>" + item.Title + "</a></h3>");

                    }
                });
                if (itemExist == false)
                    $('.projectRow').append("<div class='projectHeadingDiv left'><li><h1>" + item.Project_heading + "</h1><h3><a id='" + item.ID + "' class='projectLink' href='#'>" + item.Title + "</a></h3></div></li></div>");

            });           
        },
        error: function (error) {
            alert(JSON.stringify(error));
        }
    });

我使用的是 jQuery 1.5.2(如果我使用更新的版本,Sharepoint 2010 会变得模糊)。我一直在查看 IE11 中的调试器并且数据在那里,它只是不会附加到我的 div 中。似乎附加可能是罪魁祸首,因为如果我用.html() 替换.append(),我可以看到$each-loop 中的最后一项。例如:

$(item1).parent().html("<h3><a id='" + item.ID + "' class='projectLink' href='#'>" + item.Title + "</a></h3>");

有谁知道为什么 .append 在 Chrome 而不是 IE 中有效?控制台不提供任何错误消息,因此没有任何线索。但是,如果我将 IE 开发工具中的“文档模式”从 8(默认)更改为 9 或更高,它似乎可以正常工作。

非常感谢任何帮助。

【问题讨论】:

    标签: jquery internet-explorer google-chrome sharepoint


    【解决方案1】:

    您有两个不匹配的结束标签 &lt;/div&gt;&lt;/li&gt;。修复 HTML,它应该可以工作:

    <div class='projectHeadingDiv left'><li><h1>" + item.Project_heading + "</h1><h3><a id='" + item.ID + "' class='projectLink' href='#'>" + item.Title + "</a></h3></div>
    

    Chrome 和 Firefox 对这种粗心的开发者更加宽容。但是 IE 对这种错误比较敏感(其实我觉得还不错)。

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 2013-03-17
      • 2012-06-07
      • 2019-08-12
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多