如何使用.load立即将数据读取到JavaScript变量中?
当我在JavaScript函数中使用.load时,要从服务器读取元素到浏览器页面中的元素,如果我立即读取浏览器页面元素,那么它还没有更新。
下次我的函数运行时,浏览器页面元素是最新的。
下面,在再次调用process_MM_button()之前,变量latest_MM不是最新的。
function process_MM_button() {
$('#result').load('_wm_load3.html #MM_upload_status_windmark_field_id');
var latest_MM = document.getElementById("result").innerHTML
}
enter code here
答案 0 :(得分:1)
您可以使用.load()
函数的回调函数:
function process_MM_button() {
$('#result').load('_wm_load3.html #MM_upload_status_windmark_field_id', function () {
var latest_MM = document.getElementById("result").innerHTML;
//or using jQuery
var latest_MM = $("#result").html();
});
}
使用.load()
函数的回调函数将允许在尝试获取#result
元素的HTML之前将服务器响应添加到DOM。
.load()
的文档:http://api.jquery.com/load/
在将其添加到DOM之前,您还可以使用其他AJAX函数之一来存储从服务器返回的数据:
function process_MM_button() {
//create AJAX request
$.get('_wm_load3.html', function (serverResponse) {
//turn serverResponse variable into jQuery object (was most likely a string) and then limit it to the desired element
serverResponse = $(serverResponse).find('#MM_upload_status_windmark_field_id');
var latest_MM = serverResponse;
//add the server response to the DOM
$('#result').html(serverResponse);
});
}