【发布时间】:2010-04-14 13:35:19
【问题描述】:
当我尝试通过回调函数返回 html 时,由于某种原因,我变得未定义:
function getDataFromUrl(urlWithContent)
{
// jQuery async request
$.ajax(
{
url: urlWithContent,
dataType: "html",
success: function(data) {
return $('.result').html(data);
},
error: function(e)
{
alert('Error: ' + e);
}
});
}
我知道我正在取回数据,我在响应中的 firebug 中看到它,当我发出数据警报时,我看到整个页面内容出现在警报框中。
当我调用我的函数时,我正在执行以下操作:
var divContent = getDataFromUrl(dialogDiv.attr("href"));
if(divContent)
dialogDiv.innerHTML = divContent;
当我提醒 divContent(在 if 语句之前)时,我变得不确定。也许我只是在返回数据的方式上犯了这个错误?
我也试过只返回数据;同样的事情,当设置为我的变量时,在调用此方法后我得到未定义。
根据回复更新:
试过了,还是不确定:
function getDataFromUrl(urlWithContent, divToUpdate)
{
$.ajax(
{
url: urlWithContent,
aSync: false,
dataType: "html",
success: function(data) {
divToUpdate.innerHTML = data;
},
error: function(e)
{
alert('Error: ' + e);
}
});
}
我在另一个函数中这样调用它:
var divContent = "";
if (dialogDiv.attr("href"))
{
getDataFromUrl(dialogDiv.attr("href"), divContent);
}
【问题讨论】:
-
自更新以来 - 您传入的是
divContent,而不是dialogDiv- 您需要传入对div的引用才能更新。 -
感谢大家的时间。我想我现在已经 360 度了。
标签: jquery