function getHtmlBodyFromFile( filename ){
var outStr = '';
$.get(filename, function(data, status) {
outStr = $('body', $(data)).html();
});
return outStr;
}
$("div#detail").html( getHtmlBodyFromFile('OEBPS/text/section0002.xhtml') ); //blank
返回outStr为空,因为函数在调用$ .get()后立即返回 你能否建议我使用有效数据返回那些非阻塞风格的更好方法。 非常感谢你
答案 0 :(得分:3)
不要期望从getHtmlBodyFromFile
函数返回数据,而是将回调函数传递给getHtmlBodyFromFile
,这应该在ajax调用之后执行。
这样的事情:
function getHtmlBodyFromFile( filename, callback ){
var outStr = '';
$.get(filename, function(data, status) {
outStr = $('body', $(data)).html();
callback(outStr)
});
//return outStr;
}
getHtmlBodyFromFile('OEBPS/text/section0002.xhtml', function(data) {
$("div#detail").html(data);
});
答案 1 :(得分:1)
您可以使用.load,这将非常简单,允许您指定要插入的远程文档的一部分。
$("div#detail").load('OEBPS/text/section0002.xhtml body');
PS: 如果您使用ID选择器,则不需要$('div#detail')
,只需$('#detail')
就会更好。通过id查询dom是快捷方式。
答案 2 :(得分:0)
答案 3 :(得分:0)
您还可以考虑使用.load()
:
$('div#detail').load('OEBPS/text/section0002.xhtml', function(response, status) {
$(this).html($('body', $(response)));
});
或者,您可以通过在URL后面添加' body'
来加载所需的片段,但是通过回调,您可以选择检查响应状态。