2013-07-31 3 views
1

함수에서 JQuery 객체를 반환 할 수 없기 때문에이 코드가 작동하지 않는지 궁금합니다. 이 코드는 작동하지 않습니다jquery는 HTML 파일을 읽고 객체로 파일을 반환합니다. 왜 작동하지 않습니까?

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; 
    }); 
+1

[지연 객체] (http://api.jquery.com/category/deferred-object/)의'.done()'메소드를보십시오. –

답변

4

귀하의 문제는 $.get$.Deferred().promise(), 콜백에서하지의 반환 값을 반환합니다.

0

$ .get() http://api.jquery.com/jQuery.get/에 대한 설명서를 확인하십시오. 콜백 값을 반환하지 않습니다. 성공을위한 콜백 함수는 일반적으로 비동기 적으로 실행됩니다.

당신은 당신이 기적 당신의 AJAX 요청을 실행하는 데 필요한 첫 번째 예와 같은 일을 할 수있는 콜백 함수

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

의 내부에 작업을 수행 할 수 있습니다. 동시에 실행이 다음 행으로 이동하기 전에 동 기적으로 완료되었음을 의미합니다.

var strAll = null; 
$.ajax({ 
    url: HTML_FILE_URL 
    success: function(result) { 
     strAll = $(data); 
    }, 
    async: false 
}); 
... 
$("#qapagediv").append(strAll.html()); 
관련 문제