2012-04-20 5 views
0

Я помню, как в прошлом использовался плагин, где я мог использовать AJax для загрузки страницы и обновления только части DOM. Запрос AJax возвращает всю HTML-страницу, но только небольшая ее часть заменяет часть загружаемого в настоящее время DOM.Использование JQuery со строкой (вместо DOM)

Например, SO может использовать эту функцию для извлечения http://stackoverflow.com и обновлять только #content. SO сделает запрос AJax для получения http://stackoverflow.com, извлечет #content из возвращаемой строки и обновит #content DOM.

Извините, если мой вопрос в замешательстве. Как я могу сделать это без плагина?

+0

Ваш вопрос не очень понятно, или у меня проблемы с пониманием его. «Как мне это сделать без плагина?» К чему относится это «это»? То, о чем вы говорили в своем примере, - это метод $ .fn.load. –

ответ

3

Функция .load() предназначена для этого. Просто включите селектор для элемента вместе с URL, например, так:

$('#content').load('http://stackoverflow.com #content', optionalCallbackFunction); 

Это заменит содержимое элемента с идентификатором content на текущей странице с содержимым элемента с ID content на странице возвращенный запросом AJAX к http://stackoverflow.com, затем выполните функцию с именем optionalCallbackFunction. Предполагая, конечно, что запрос был успешным.

+0

Итак '$ ('некоторый элемент для замены содержимого')', вероятно, '$ ('# content')'. – Prestaul

+0

@Prestaul Действительно, отредактировал ответ. –

+0

yes - ajax.load - ваш главный вариант здесь. См. Эту ссылку, полную информацию: http://api.jquery.com/load/. Он включает полное описание того, как загружать часть страницы, как указано выше Энтони. –

0

Без AJAX, вы можете разобрать сырой строку, как это:

var str = "<div><h1>Page Title</h1><div id='content'>This is new.</div></div>"; 
var text = $("#content",$(str)).html(); 
$('#content').html(text); 
Смежные вопросы