如何用jQuery选择和替换整个页面

时间:2009-04-27 13:14:07

标签: jquery jquery-selectors css-selectors

我的页面设计迫使我使用通过ajax加载的html刷新整个页面。

$('html').replaceWith(data);

给我错误。有什么想法吗?

5 个答案:

答案 0 :(得分:22)

我有同样的问题,但这没有帮助。 如果您还需要替换<head>标记(因此,整个页面),您也可以

document.write(newPage);

答案 1 :(得分:17)

使用body:

$('body').replaceWith(data);

答案 2 :(得分:9)

我遇到了一些问题

$("body").replaceWith(newPage)

给我一​​些奇怪的CSS问题,但这很好用:

$("body").html(newPage);

答案 3 :(得分:2)

jQuery.replaceWith和jQuery.html在使用&#39; body&#39;执行时的奇怪行为选择。在通话后你松开了身体标签:

$('body').replaceWith('<body>New body</body>');

任何其他选择器都不会发生:

$('title').replaceWith('<title>New title</title>');

jQuery.html也不会将body标记加倍(与其他标记一样),并在调用时像replaceWith一样运行:

$('body').html('<body>New body</body>');

我希望这不是jQuery的灰色区域。或者如果是,他们不会想到解决它。我有应用程序,我使用$(&#39; body&#39;)。html当$(&#39; body&#39;)。replaceWith应该被使用。

答案 4 :(得分:1)

这可能是您需要的解决方案,它取代整个文档,包括其头部。加载新的css,js&amp ;;你不会有任何问题。其他资源。我假设您通过调用REST API来接收新的html内容:

$.ajax({
  type: 'POST',
  url: form.attr('action'),
  data: form.serialize(), // serializes form elements
  success: function(response) {
    // re-writes the entire document
    var newDoc = document.open("text/html", "replace");
    newDoc.write(response);
    newDoc.close();
  }
});