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

由于请求是异步的,因此返回的是一个承诺,而不是查询的结果(尚不存在)。

惯用的解决方案是将回调传递给get,当查询结果可用时调用此回调:

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

您还可以以这种等效的方式使用返回的对象,即承诺:

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

请注意,我还反转了insertBefore的接收者和参数。

于 2012-11-24T21:02:54.083 回答