1

我想知道这段代码是否不起作用,因为您无法从函数返回 JQuery 对象。此代码不起作用:

var HTML_FILE_URL = '/Solutions1.htm';
var strAll = $.get(HTML_FILE_URL, function (data) {
                      var fileDom = $(data);
                      return fileDom;
                });
 $("#qapagediv").append(strAll.html());

但是,此代码确实有效:

 var strAll = $.get(HTML_FILE_URL, function (data) {
         var fileDom = $(data);
         $("#qapagediv").append(fileDom);
         return fileDom;
  });
4

2 回答 2

4

您的问题是$.get返回 a $.Deferred().promise(),而不是回调的返回值。

于 2013-07-31T18:33:16.660 回答
0

检查 $.get() http://api.jquery.com/jQuery.get/的文档它不返回回调的值。带有成功回调的函数通常异步运行。

您可以在回调函数中执行您的任务

$.get(...).done(function(data) { 
    var strAll = $(data);
    $("#qapagediv").append(strAll);
});

要执行第一个示例之类的操作,您需要同步运行 AJAX 请求。同步意味着它在执行移动到下一行之前完成。

var strAll = null;
$.ajax({
    url: HTML_FILE_URL
    success: function(result) {
        strAll = $(data);
    },
    async: false
});
...
$("#qapagediv").append(strAll.html());
于 2013-07-31T18:38:13.317 回答