使用insertBefore和$ .get的结果

时间:2012-11-24 21:00:20

标签: jquery

我试图用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不返回正确的对象但不知道如何继续。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:4)

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

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

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

你也可以用这种等价的方式使用返回的对象:

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

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