Я хотел бы использовать $.ajax() для запроса страницы, но загружать только фрагменты этой страницы. Я знаю, вы можете указать, какие фрагменты страницы вы хотите с .load(), но мне было интересно, возможно ли это с помощью $.ajax?
Загрузка фреймов страницы с помощью JQuery AJAX
Ответ 1
Для тех из вас, кто задается вопросом, stoplion ссылается на эту функцию: Загрузка фрагментов страницы (прокрутите страницу вниз):
Метод .load(), в отличие от $.get(), позволяет нам указать часть удаленного документа, который нужно вставить. Это достигается специальным синтаксисом параметра url. Если один или несколько символов пробела включены в строку, часть строки, следующей за первым пространством, считается селектором jQuery, который определяет загружаемый контент.
Так как $.get() не поддерживает его, я предполагаю, что $.ajax тоже не будет. Простым способом реализации этого будет следующее:
$.ajax({
url: 'http://example.com/page.html',
data: {},
success: function (data) {
$("#el").html($(data).find("#selector"));
},
dataType: 'html'
});
Это будет эквивалент
$("#el").load('http://example.com/page.html #selector');
Однако обратите внимание, что специальный синтаксис ('#selector') означает, что скрипты, присутствующие в загруженном HTML, будут выполняться not. См. Script Выполнение в документах .load().
Ответ 2
Вы можете получить свой фрагмент через сообщение, добавить html в div с дисплеем: none; Затем используйте селектор, чтобы получить нужный фрагмент, и добавьте его в область, которую вы хотите отобразить.
Воздушный код:
<div id="tempRegion" style="display:none;">
</div>
$.ajax({
url: "page.htm",
type: "GET",
success: function(results){
$('#tempRegion').html(results);
...
// Now select fragment, append to display area
var fragement = $('#someFragment').html();
$('#displayRegion').html(fragement);
})
});
Ответ 3
Правильный ответ для вас:
$.ajax({
url: 'http://example.com/page.html',
data: {},
success: function (data) {
$("#el").html($(data).append(data).find("#selector"));
},
dataType: 'html'
});
Ответ 4
Простое решение с использованием метода загрузки:
$("#menu a").click(function(){
event.preventDefault();
$("#container").load(this.href + " #container p");
return false;
});
Используйте только метод Ajax для более сложных сценариев, таких как отправка или получение из файла PHP script или JSON, иначе это замедлит ваш сайт.