如何立即从.load获取数据

时间:2012-02-27 20:58:00

标签: javascript jquery ajax

如何使用.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

1 个答案:

答案 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);
    });
}