我有一个返回html标记的Ajax函数。我需要从整个字符串中提取某个div并替换当前html中的相同div。 这是代码的一部分:
$.ajax({
type: "POST",
url: postUrl,
dataType: "HTML",
data: "ddd"
success: function(htmlResponse) {
//replace the html code
$('#somediv').html($('#somediv' htmlResponse).html());
}
},
在Chrome和FF中运行良好,而不是在IE 8中运行.IE在htmlResponse中找不到div。我试着提醒:
alert($(htmlResponse).find('#somediv').html());
并收到一条空白消息。 这是IE中的错误,我的代码有什么问题吗? 谢谢8
答案 0 :(得分:1)
var postUrl = "/something/target.htm #theDiv";
$.ajax({
type: "POST",
url: postUrl,
dataType: "HTML",
data: "ddd"
success: function(htmlResponse) {
//replace the html code
$('#somediv').html($('somediv' htmlResponse).html());
}
},
我无法回想起这是否适用于$ .ajax或$ .get,但我知道它适用于$('#somediv')。load(),这可能是一种替代的,更短的方法:
$('#somediv').load("/something/target.htm #theDiv");
你可以在URL中插入一个查询字符串,只要#divID在最后。
答案 1 :(得分:1)
关于alert
,我想不出为什么IE会在alert($(htmlResponse).find('#somediv').html());
上中断,除非抓取的html()只是过大/空白/空白太多。< / p>
然而,在这一行:
$('#somediv').html($('somediv' htmlResponse).html());
你的意思是:
$('#somediv').html($('#somediv', htmlResponse).html());
编辑:
分析htmlResponse
中的HTML并确保其格式正确可能是个好主意。也许<div>
没有关闭,或IE8遇到问题的其他无效语法。