1
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

return outStr 是空白的,因为函数在调用 $.get() 后立即返回,您能否建议我一种更好的方法来返回那些非阻塞样式的有效数据。太感谢了

4

4 回答 4

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);
});
于 2012-06-19T02:27:42.820 回答
1

您可以使用.load,这将非常简单,它允许您指定要插入的远程文档的一部分。

$("div#detail").load('OEBPS/text/section0002.xhtml body');

PS:如果你使用 id 选择器,你不需要$('div#detail'),只是$('#detail')会更好。通过 id 查询 dom 是快速的方法。

于 2012-06-19T02:34:10.080 回答
0

http://api.jquery.com/jQuery.get/

使用success时使用回调$.get()

于 2012-06-19T02:30:52.287 回答
0

您也可以考虑使用.load()

$('div#detail').load('OEBPS/text/section0002.xhtml', function(response, status) {
    $(this).html($('body', $(response)));
});

或者,您可以通过' body'在 URL 后面添加来加载所需的片段,但使用回调您可以选择检查响应状态。

于 2012-06-19T02:33:37.060 回答