【发布时间】:2012-02-07 03:33:05
【问题描述】:
愚蠢的快速问题:
我有我的:
$('#result').load('ajax/test.html');
但是如果我不想将加载的内容插入#result,而是将其添加到#result 中,并保留所有先例元素,该怎么办?是否可以创建一个变量,将其加载到内容中,然后将其附加或添加到我的#result 中?我想象在其他一些场景中,我可以使用我的全新变量在将其插入 DOM 之前对其进行操作。
【问题讨论】:
标签: jquery
愚蠢的快速问题:
我有我的:
$('#result').load('ajax/test.html');
但是如果我不想将加载的内容插入#result,而是将其添加到#result 中,并保留所有先例元素,该怎么办?是否可以创建一个变量,将其加载到内容中,然后将其附加或添加到我的#result 中?我想象在其他一些场景中,我可以使用我的全新变量在将其插入 DOM 之前对其进行操作。
【问题讨论】:
标签: jquery
你的意思是这样的?
var content;
$.get('ajax/test.html', function(data){
content= data;
$('#result').prepend(content);
});
这会将您加载的内容首先保存到一个变量中,然后您可以随意操作它。
【讨论】:
一种快速的方法可能是:
$('#result').append($('<div>').load('ajax/test.html'));
【讨论】:
var response;
$.ajax({ type: "GET",
url: "ajax/test.html",
async: false,
success : function(text)
{
response= text;
}
});
$('#result').prepend('<div>'+response+'</div>');
您需要“async: false”,以便等待响应。如果您不等待它(正常的 Ajax 异步调用),您将有一个未知时间的未定义变量,因此可能很危险。
编辑:正如 cmets 所说,使用“async:false”并不常见,而且很丑陋。通常你会操纵响应并将其插入到成功回调中的 DOM 中。仅当您确实需要变量中的响应以等待另一件事使用该变量时才需要使用异步,而不是常见的事情发生。
$.ajax({ type: "GET",
url: "ajax/test.html",
success : function(text)
{
$('#result').prepend('<div>'+text+'</div>');
}
});
【讨论】:
.prepend() 语句放在成功回调函数中。无需同步。
做一个 jQuery post 并将数据加载到一个变量并添加到所需的 div 之前
$.post('ajax/test.html', function(data) {
$('#result').prepend(data);
});
【讨论】:
我认为这是一个较短的解决方案
$.get("ajax/test.html",function (dados) { $("#result").append(dados);});
【讨论】: