在jQuery中,如何在指定元素之后加载ajax内容

时间:2009-08-29 01:21:29

标签: javascript jquery html ajax load

我有以下HTML:

<div id="mydiv">
</div>

我想使用jQuery加载内容,因此它出现在我的DIV之后。

我试过这个:

$("#mydiv").load("/path/to/content.html");

然而,这最终导致了这个结果:

<div id="mydiv">
<p>content from file</p>
</div>

我如何得到这个结果?

<div id="mydiv">
</div>
<p>content from file<p>

4 个答案:

答案 0 :(得分:6)

任何人仍在寻找解决方案,我建议使用jQuery.get()代替.load()来加载AJAX内容。然后使用.after()函数指定前面的元素。

以下是一个例子:

$.get('url.html', function(data){ // Loads content into the 'data' variable.
    $('#mydiv').after(data); // Injects 'data' after the #mydiv element.
  });

答案 1 :(得分:5)

使用after功能。

答案 2 :(得分:1)

我有一个有趣但相当困难和难以理解的方法,但使用.load函数。所以,代码:

$('#div_after').remove();
$('#mydiv').after($('<div>').load('/path/to/content.html #div_after', {
    data: data, //variables to send. Useless in your case
}, function () {
    $(this).children().unwrap();}
));

请参阅,如果您多次使用此代码,我会将.remove()方法删除以前创建的div。如果只使用一次,您可以删除第一行。 这个想法是.after($'')在#mydiv和.load()之后在页面上创建noname div元素,用回调函数将html放入其中

$(this).children().unwrap();

逻辑上将打开我们的noname div并从加载html“重命名”到我们的#div_after。如果你只想使用noname div,也没有必要。

干杯!

P.S。我花了一段时间在一个项目中将所有这些东西组合在一起:)我希望它会有用。

答案 3 :(得分:0)

使用after(内容)功能