将字符串从一个函数传递到下一个javascript
我有一个简单的JavaScript客户端,它从REST API提取一些书籍数据,但是我似乎无法调用函数createBookRow(bookid)并将适当的html字符串返回到调用它的document ready函数 通过html页面上的append to.row流体验证,当前正在正确生成输出,欢迎提出想法或建议将字符串从一个函数传递到下一个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
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));