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

$ .get()を呼び出した直後に関数が戻るため、returnoutStrは空白です。これらの非ブロッキングスタイルの有効なデータを使用してreturnを実行するためのより良い方法を提案してください。どうもありがとう

4

4 に答える 4

3

関数からデータを返すことを期待する代わりに、ajax呼び出しの後に実行する必要がgetHtmlBodyFromFileあるコールバック関数を渡します。getHtmlBodyFromFile

このようなもの:

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

または、URLの後ろに追加して必要なフラグメントをロードすることもできます' body'が、コールバックを使用すると、応答ステータスを確認するオプションがあります。

于 2012-06-19T02:33:37.060 に答える