2013-03-29 2 views
0

Я использую jquery .get для загрузки содержимого страницы. Страница загружается нормально, а вывод хранится в переменных данных. Я хочу только захватить определенный div с идентификатором «result1» из этой переменной данных и поместить его на страницу. У меня возникла проблема с анализом этого конкретного элемента из переменных данных, кажется, что все элементы размещаются на странице. Я думаю, что это легко исправить, но это сводит меня с ума.JQuery .html function

Вот базовый код без каких-либо попыток разбора:

$.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"); 

В. load(), в отличие от $ .get(), позволяет указать 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

Что делать, если я хотел загрузить result1 в элемент details1 и result2 в элемент details2 в одном HTTP-запросе? – user1886368

+0

Что сделал, спасибо. – user1886368

0

Используйте этот синтаксис для загрузки только result1 DIV в details1 элемента.

$('#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')); 
});