jquery load()和追加
愚蠢的快速问题:
我有我的:
$('#result').load('ajax/test.html');
但是,如果我不想将我加载的内容插入到#result中,但是将其添加到#result,维护所有先前元素,该怎么办? 是否可以创建变量,使用内容加载它,然后将其附加或添加到我的#result中? 我想象一些其他场景,在我将全新的变量插入到DOM之前我可以操作它。
var response; $.ajax({ type: "GET", url: "ajax/test.html", async: false, success : function(text) { response= text; } }); $('#result').prepend(''+response+'');
你需要“async:false”,所以你等待响应。 如果你不等它(正常的Ajax异步调用),你将在未知的时间内有一个未定义的变量,所以它可能是危险的。
编辑:正如评论正确地说,使用“async:false”是不常见的,并且是丑陋的。 通常,您会操纵响应并将其插入成功回调中的DOM中。 如果你真的需要在变量中的响应等待另一件事来使用该变量,那么仅需要使用异步,而不是常见的事情。
$.ajax({ type: "GET", url: "ajax/test.html", success : function(text) { $('#result').prepend(''+text+''); } });
你的意思是这样的?
var content; $.get('ajax/test.html', function(data){ content= data; $('#result').prepend(content); });
这会将您加载的内容首先保存到变量中,然后您可以根据需要对其进行操作。
一个快速的方法可能是:
$('#result').append($('').load('ajax/test.html'));
做一个jQuerypost并将数据加载到vaiable并添加到所需的div
$.post('ajax/test.html', function(data) { $('#result').prepend(data); });
我认为这是一个较短的解决方案
$.get("ajax/test.html",function (dados) { $("#result").append(dados);});