2

これをjQueryで機能させようとしています

var ng = $.get('/static/views/ng.html');
$('#myHeader').insertBefore(ng);

ng.html にはこれが含まれています

<div id="ng">
    <div class="c all"></div>
    <div class="f all"></div>
    <div class="p all"></div>
</div>

エラーなどは発生しません。正しいオブジェクトを返さないのは $.get だと思いますが、続行する方法がわかりません。

何か案は?

ありがとう

4

1 に答える 1

4

リクエストは非同期であるため、返されるのは promise であり、クエリの結果 (まだ存在していない) ではありません。

慣用的な解決策は、コールバックをgetに渡すことです。このコールバックは、クエリの結果が利用可能になったときに呼び出されます。

$.get('/static/views/ng.html', function(html) {
    $(html).insertBefore('#myHeader');
});

返されたオブジェクトである promise を次の同等の方法で使用することもできます。

$.get('/static/views/ng.html').success(function(html) {
    $(html).insertBefore('#myHeader');
});

insertBeforeのレシーバーと引数も逆にしたことに注意してください。

于 2012-11-24T21:02:54.083 に答える