我试图从我正在工作的网站的另一个页面中提取Div的内容并更新当前页面上的Div。我想这样做,所以我不需要重新加载页面。我正在使用的Ajax调用在Firefox中正常工作,它使用来自网站其他页面的内容更新Div。问题是它在IE中打破了,当我尝试从使用.html()返回的数据获取HTML时,我在IE中得到了空值。如果我只是在返回的数据上发出警报,则会显示html。jQuery Ajax从该网站的另一个页面加载内容
var divItems = $("#tab-bbp a").attr("href");
$.ajax({
type: "GET",
url: divItems,
dataType: "html",
success: function(msg){
$("#persistenslcont").html($("#persistenslcont",msg).html());
//null in IE, returns HTML in FF
alert($("#persistenslcont",msg).html());
},
error: function() {
alert("error");
}
});
这似乎很奇怪,这在IE中不起作用。另外,我不确定这是不是我想要完成的最好的技术。任何帮助,将不胜感激。下面
编辑
当我尝试了.load功能我还是遇到了问题与IE浏览器是注释掉的代码。我有很多提醒尝试找出问题所在。看起来#2应该可以工作,但在IE中返回null。
是否可以操作[object Object]或查看它包含的内容?
var divItems = $("#tab-bbp a").attr("href");
$("#persistenslcont").load(slItems + " #persistenslcont",
function (data, textStatus, req) {
//returns HTML code in the alert in IE & FF
alert("test 1" + req.responseText);
//returns null in IE - In FF returns proper code
alert("test 2" + $("#persistenslcont",req.responseText).html());
//returns [object Object] same in IE & FF
alert("test 3" + $("#persistenslcont",data));
//returns [object Object] same in IE & FF
var $response = $('<div />').html(data);
var $test4 = $response.find('#persistenslcont');
$('#persistenslcont').append($test4);
alert("test 4" + $test4);
if (textStatus == "error") {
alert("error");
}
});
您使用的是哪种版本的IE?您是否使用过任何开发工具(例如Firebug for FF)来检查特定错误? – 2009-10-02 01:01:45
我使用Firebug,但Firefox中没有错误,并且在IE中打开的JS错误通知也没有显示。它在FF中工作,而不是在IE中。 $(“#persistenslcont”,msg).html()返回null,即使您查看msg(返回的数据),您将获得HTML代码输出。 – Westing 2009-10-02 01:33:27