2009-08-29 81 views
2

我有以下HTML:在jQuery中,指定的元素之後,如何加載Ajax內容

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

我想這樣就出現在我的DIV之後加載使用jQuery的內容。

我已經試過這樣:

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

然而,這最終對這個結果:

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

如何得到這樣的結果?

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

回答

0

與後(內容)功能

6

任何人仍在尋找解決方案,我會建議使用jQuery.get()而不是​​來加載AJAX內容。然後使用.after()函數來指定前面的元素。

下面是一個例子:

$.get('url.html', function(data){ // Loads content into the 'data' variable. 
    $('#mydiv').after(data); // Injects 'data' after the #mydiv element. 
    }); 
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,如果您多次使用此代碼。如果只使用一次,您可以刪除第一行。 的想法是。經過($「」)#mydiv和.load(後在頁面上創建NONAME的div元素)HTML到它的回調函數

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

這在邏輯上是將展開爲我們的NONAME DIV並從加載html中將其重命名爲我們的#div_after。如果你希望只使用noname div,也是不必要的。

乾杯!

P.S.我花了一段時間在一個項目中將所有這些東西結合在一起:)我希望它會有用。