2013-03-29 85 views
0

我正在使用jquery.get加載頁面的內容。頁面加載沒問題,輸出存儲在變量數據中。我只想從數據變量中獲取一個具有'result1'標識的特定div,並將其放在頁面上。我無法從變量數據解析這個特定的元素,似乎所有的元素都被放置在頁面上。我認爲這是一個簡單的解決方法,但它讓我瘋狂。JQuery .html函數

這裏是沒有任何解析嘗試的基本代碼:

$.get("test.php?id=" + $(this).attr('id') + "&auth=1" ,function(data){ 
     $("#details1").html(data); 
    }); 

下面是數據的結果:

<div id='result1'> 
<table> 
<tr> 
<td>testa</td> 
<td>testb</td> 
</tr> 
</table> 
</div> 

<div id='result2'> 
<table> 
<tr> 
<td>testc</td> 
<td>testd</td> 
</tr> 
</table> 
</div> 
+1

您可以簡單地使用'.load'並傳遞一個選擇。 http://api.jquery.com/load/#loading-page-fragments –

+0

請嘗試http://api.jquery.com/load/。請參閱「加載頁面片段」部分。 – j08691

+0

鑑於代碼的性質,我無法使用加載。我必須爲特定元素解析這個數據變量。 – user1886368

回答

1

您可以使用load()

$("#details1").load("test.php?id=" + $(this).attr('id') + "&auth=1 #result1"); 

的。與$ .get()不同,load()方法允許我們指定y將要插入的遠程文檔的一部分 。這是通過url參數的特殊 語法實現的。如果字符串中包含一個或多個空格字符 ,則假定第一個 空間後面的字符串部分是用於確定要加載的內容 的jQuery選擇器。

,或者你可以做同樣的自己:

$.get("test.php?id=" + $(this).attr('id') + "&auth=1" ,function(data){ 
    $("#details1").append($('<div />').append(data).find('#result1')); 
    $("#details2").append($('<div />').append(data).find('#result2')); 
    $("#details3").append($('<div />').append(data).find('#result3')); 
}); 
+0

如果我想在單個http請求中將result1加載到元素details1和result2到元素details2中,該怎麼辦? – user1886368

+0

這樣做,謝謝。 – user1886368

0

使用此語法僅加載在details1元素result1股利。

$('#details1').load("test.php?id=" + $(this).attr('id') + "&auth=1 #result1'); 
0
$.get("test.php?id=" + $(this).attr('id') + "&auth=1" ,function(data){ 
    $("#details1").html($(data).filter('#result1')); 
});