jquery .html()不适用于ie8

jac*_*ack 16 jquery jquery-selectors

我有一个jquery函数,它对Web服务器上的webservice方法进行ajax调用,该方法返回一个带有数据的html表.我使用.html()来渲染div的返回值.这适用于Firefox,Chrome,Safari,但不适用于IE8

$.ajax({
    type: "POST",
    url: "./../WebAjaxCalls.asmx/GetProductInstruction",
    data: "{'ProductID':'" + $("#txtProductID").val()  + "'}",
    success: function(data) {
        if (data.d[0] == "true") {
            **$("#dvProudctInstruction").html(data.d[1]);** 
        }
    },
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    error: function(e, textStatus, errorThrown) {
        bReturn = false;
    }
});  
Run Code Online (Sandbox Code Playgroud)

$("#dvProudctInstruction").html(data.d [1]); 适用于IE8以外的所有浏览器.

任何有关这方面的帮助将非常感激.

Nil*_*kar 10

您可以在分配之前提醒您的响应html()

要么

您可以使用innerHTML属性而不是jquery的html()(虽然它是相同的)

您可能想查看链接

  • +1链接.在我的情况下工作与IE8的问题(问题变成了糟糕的标记!).它说:_在IE中,事实证明,除非新的HTML有效,否则jQuery .html()属性不会替换第一个匹配元素的内容 (3认同)

Dav*_*unz 8

似乎IE8在使用jQuery的html()插入长文本字符时出现问题,使div的内容完全空白.只是尝试了一个很长的字符串和一个只包含'blah'的字符串,这就完全不同了.

因此,如果您期望非常大量的文本(例如2k +字符),那么请使用本机innerHTML.没有做进一步的研究,所以我不知道在IE8中通过html()传递的字符串的最大长度是多少.

  • 这是完全正确的.奇怪的错误. (2认同)

小智 0

您是否尝试过设置data.d[1]变量然后添加它?

例如:

if (data.d[0] == "true") {
     var results = data.d[1];
     $("#dvProudctInstruction").html(results);
}
Run Code Online (Sandbox Code Playgroud)