将字符串从一个函数传递到下一个javascript

将字符串从一个函数传递到下一个javascript,javascript,jquery,xml,api,function,Javascript,Jquery,Xml,Api,Function,我有一个简单的JavaScript客户端,它从REST API提取一些书籍数据,但是我似乎无法调用函数createBookRow(bookid)并将适当的html字符串返回到调用它的document ready函数 通过html页面上的append to.row流体验证,当前正在正确生成输出,欢迎提出想法或建议 function createBookRow(bookid) { $.get('http://mysite.co.uk/atiwd/books/course/'+bookid+'/xml

我有一个简单的JavaScript客户端,它从REST API提取一些书籍数据,但是我似乎无法调用函数createBookRow(bookid)并将适当的html字符串返回到调用它的document ready函数

通过html页面上的append to.row流体验证,当前正在正确生成输出,欢迎提出想法或建议

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


});  
函数createBookRow(bookid)
{
$.get('http://mysite.co.uk/atiwd/books/course/'+bookid+'/xml',函数(xml){
$(xml).find('book').each(function(){
var$book=$(本);
var id=$book.attr(“id”);
var title=$book.attr(“title”);
var isbn=$book.attr(“isbn”);
var borrowedcount=$book.attr(“borrowedcount”);
var html='

'; html+=''+title+'

'; html+=''+isbn+'

'; html+=''+借用计数+'

'; html+=''; $('.row fluid')。追加($(html)); }); }); } $(文档).ready(函数() { $.get('xml/courses.xml',函数(xml){ $(xml).find('course').each(function(){ 变量$course=$(本); 变量id=$course.attr(“id”); var title=$course.text(); var html=''+title+'

'+createBookRow(id)+'; $('.row fluid')。追加($(html)); $('.loadingPic')。衰减(1400); }); }); });
您提供的代码中没有返回任何内容。您只需将一些HTML附加到jQuery对象。尝试添加返回语句

return html;
线路

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

上述代码将始终在末尾追加book行

createBookRow
是一个异步函数,不能像“+”是字符串的串联运算符那样使用它。但是您的函数不返回任何字符串我已经创建了一个JSFIDLE,但是我需要courses.xml中的一些数据来完成它:html只是一个字符串变量。为什么在append中使用$(html)。它应该是
$('.row fluid').append(html)
 var html = '<div class="span12"><p>' + title + '</p><row id="'+id+'" ></row></div>' ; 
 createBookRow(id);
 $('.row-fluid').append($(html));