我需要在div中加载HTML。
$("#content").load("content.html");
$("#myText").html("Prasath");
之后我需要更新div(id='myText')
中的一些文字,这些文字可以在" content.html"中找到。 " content.html"包含大量数据,因此加载需要一些时间。在此之前执行此行:
$("#myText").html("Prasath");
如何从JavaScript / jQuery同步加载HTML内容? 我不想在加载回拨选项中执行此操作。
答案 0 :(得分:3)
您无法同步加载它,但您可以轻松地在load()
回调中执行下一个任务。例如:
$("#content").load("content.html", function() {
$("#myText").html("Prasath");
});
答案 1 :(得分:1)
$("#content").load("content.html", function(data){
// this will execute after load is fired.
});
使用回调。
编辑:如果您确实想要发出同步请求,可以使用以下代码。但是,正如我之前在评论中提到的那样,您将在控制台中收到警告:
var data = $.ajax({
type: "GET",
url: "content.html",
async: false
}).responseText;
// this code waits for the above ajax request.
答案 2 :(得分:1)
请查看关于load()
的{{3}}。
您可以将回调函数传递给load()
例如:
$("#content").load("content.html", function(){
$("#myText").html("Prasath");
});
编辑:无法让load()
同步加载内容。解决方法是您可以定义一个Jquery函数,该函数使用JQuery documentation向目标URL发送同步请求,然后将响应内容设置为destinate div。
$(function(){
$.fn.extend({
syncLoad: function (url) {
var result = $.ajax({
url: url,
async: false,
type: "GET"
}).responseText;
$(this).html(result);
}
});
$("#content").syncLoad("/echo/js/?js=hello%20world!");
});
JS小提琴:ajax()