#jquery
#jquery
Вопрос:
Я использую $.post для отправки формы на сервер. Затем сервер возвращает html-страницу. Я хочу заменить текущее содержимое страницы тем, что возвращается с сервера. Как бы я это сделал, используя jquery?
код пока:
$('.autosave').click(function(){
var url = 'post form url';
$postData = $('#page-form').serialize();
$.post(url, $postData, function(data){
PAGE SOURCE = data
});
return false;
});
Комментарии:
1. какова цель изменения всего html, разве это не то же самое, что перенаправить страницу на нужную страницу, сгенерированную вашим серверным кодом?
2. С какой стати вам это делать? Используйте обычную форму. Весь смысл XMLHttpRequest в том, чтобы позволить вам делать не это .
Ответ №1:
На самом простом уровне…
$('body').html(data);
Предполагая, что ответ — это именно то, на что вы хотите заменить, и вы хотите заменить все в теле документа.
Ответ №2:
Просто используйте .load()
$('.autosave').click(function(){
$('#result').load('ajax/test.html #container');
return false;
});
Ответ №3:
Вероятно, вам следует заменить не все содержимое страницы, а контейнер. Независимо от этого, код является:
$.post(url, $postData, function(response)
{
// this works for any valid css selector, so "body"
// and ".class_name" works too
$('#container').html(response);
});
Ответ №4:
Для замены содержимого заданным HTML-кодом вы можете использовать .replaceWith()
Предполагая, что ваш div имеет класс «MyContent»,
$(".myContent").replaceWith(data);
Надеюсь, это поможет.
Ответ №5:
на самом деле вы можете использовать $("html").load(url "?" $postData);
вместо
$.post(url, $postData, function(data){
$("html").html(data);
});
это также изменит заголовок вашей страницы и другое содержимое внутри ваших head
тегов. однако имейте в виду, что ваши загруженные script
теги впоследствии не будут доступны в DOM
Ответ №6:
Вы можете заменить html-элементы на своей странице, но не весь html. Представьте, что вы переустанавливаете свою ОС «на лету».
Кстати, если вы хотите вставить свои данные в <div id="item">
, вы можете сделать это:
$.post(url, $postData, function(data){
$('#item').html(data);
});
Комментарии:
1. уверен, что вы можете.
$('html').html(data)
сделает это2. @Jules если ты можешь что-то сделать, это не значит, что ты мог бы это сделать. 🙂
3. по-видимому, я не очень знаком с разницей между could и can 🙂 я просто говорю, что вы можете. пока вы говорите: «вы можете заменять элементы, но [вы можете] не [заменять] весь html». итак, говоря, что вы не можете, было бы это то же самое, что вы могли бы?
4. круто, я все еще не понимаю разницы между could и can, хотя. но, возможно, мне лучше перейти к english.stackexchange.com для этого 🙂