2013-02-27 1 views
0

REST API에서 일부 서적 데이터를 가져 오는 간단한 JavaScript 클라이언트가 있지만 createBookRow (bookid) 함수를 호출하고 해당 html 문자열을 반환 할 수없는 것으로 보입니다 HTML 페이지에 유체를 셀에만하기 위해 APPEND에 의해 확인으로 출력은 현재 제대로 생산되고있다한 함수에서 다음 자바 스크립트로 문자열 전달

가 호출 될 때 문서 준비 기능으로, 아이디어 나 제안 당신은 '때로 믿을 수

function createBookRow(bookid) 
{ 
$.get('http://mysite.co.uk/atiwd/books/course/'+bookid+'/xml', function(xml){ 

$(xml).find('book').each(function(){ 
var $book = $(this); 
var id = $book.attr("id"); 
     var title = $book.attr("title"); 
     var isbn = $book.attr("isbn"); 
     var borrowedcount = $book.attr("borrowedcount"); 
     var html = '<div class="span3"><img name="test" src="http://covers.openlibrary.org/b/isbn/'+isbn+'-L.jpg" width="32" height="32" alt=""></p>' ; 
     html += '<p> ' + title + '</p>' ; 
     html += '<p> ' + isbn + '</p>' ; 
     html += '<p> ' + borrowedcount + '</p>' ; 
     html += '</div>'; 
     $('.row-fluid').append($(html)); 
    });   
}); 
} 



$(document).ready(function() 
    { 
    $.get('xml/courses.xml', function(xml){ 
    $(xml).find('course').each(function(){ 

     var $course = $(this); 
     var id = $course.attr("id"); 
     var title = $course.text(); 
     var html = '<div class="span12"><p>' + title + '</p><row id="'+id+'" >'+createBookRow(id)+'</row></div>' ; 
     $('.row-fluid').append($(html)); 
     $('.loadingPic').fadeOut(1400); 
    }); 
}); 


}); 
+1

'createBookRow'은 (는) 비동기 함수이므로 – anhulife

+0

처럼 사용할 수 없습니다.'+ '는 string의 연결 연산자입니다. 하지만 당신의 함수는 어떤 문자열도 반환하지 않습니다. – 999k

+0

jsFiddle을 만들었지 만 그것을 완료하려면 courses.xml의 데이터가 필요합니다 : http://jsfiddle.net/ruslans/Sd3zb/ – Tsar

답변

0

에게 줄을 추가하십시오. 명시 적으로 언급하지 않으면 동기식 호출입니다 (이는 권장되지 않음).

당신이 필요로하는 기능은 일부 행을 렌더링하는 것입니다. 그리고 그 사이에 책 세부 정보가 표시되어야합니다. 이 경우 명시 적으로 책 행을 추가해야하는 위치를 말해야합니다.

$('.row-fluid').append($(html)); 

위의 코드는 항상 마지막에 책 행을 추가합니다.

0

을 환영합니다 귀하가 제공 한 코드에서 무엇이든 반환합니다. jQuery 객체에 HTML을 추가하기 만하면된다. createBookRow (ID) 함수는 비동기 적으로 발생하는 몇 가지 세부 정보를 얻을 수있는 GET 요청을 만드는 단지

var html = '<div class="span12"><p>' + title + '</p><row id="'+id+'" ></row></div>' ; 
createBookRow(id); 

var html = '<div class="span12"><p>' + title + '</p><row id="'+id+'" >'+createBookRow(id)+'</row></div>' ; 

가 있어야한다 return 문

return html; 
관련 문제