【发布时间】:2013-02-13 05:04:14
【问题描述】:
我有一个简单的 JavaScript 客户端,它从 REST API 中提取一些书籍数据,但是我似乎无法调用函数 createBookRow(bookid) 并将适当的 html 字符串返回到调用它的文档就绪函数,
当前正在正确生成输出,已通过 html 页面上的 .row-fluid 附加验证,欢迎提出想法或建议
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是一个异步函数,不能这样用 -
'+' 是字符串的连接运算符。但是你的函数没有返回任何字符串
-
我创建了一个 jsFiddle,但我需要从 courses.xml 中获取一些数据来完成它:jsfiddle.net/ruslans/Sd3zb
-
html 只是一个字符串变量。你为什么在追加中使用 $(html) 。应该是
$('.row-fluid').append(html);
标签: javascript jquery xml api function