jQuery-将HTML响应加载到整个页面

Joe*_*Joe 1 javascript ajax jquery web

在我的Ajax代码中,我得到了html响应。如何将整个页面替换为该html响应?我只找到window.location.href,它只能重新分配网址响应。

我的代码:

$('#btn').click(function(){
    $.ajax({
        url: '/someurl',
        data: {'key': value},
        type: 'POST',
        success: function(html_data) {
            # how to load this html_data into the whole page?
        },
        error: ...
    });
 });
Run Code Online (Sandbox Code Playgroud)

Dan*_*ski 5

window.document 是一个包含整个 DOM 的对象。

尝试在控制台 window.document 中编写,您将看到您所在页面的完整结构。如果您只想要 body 元素,那么您可以通过标签找到它并替换其中的内容。

编辑1:

其实你是对的。我没有测试过。

但你可以通过以下方式做到这一点:

document.open();
document.write(your_html);
document.close();
Run Code Online (Sandbox Code Playgroud)

在控制台中测试。


shr*_*mee 5

jQuery replaceWith应该为您完成它;)

$( "html" ).replaceWith( data );
Run Code Online (Sandbox Code Playgroud)

datahtml从服务器接收...

整个代码看起来像这样...

$.get( "example.com/fileToLoad.html", function( data ) {
  $( "html" ).html( data );
});
Run Code Online (Sandbox Code Playgroud)

在此处了解有关jQuery的更多信息...

http://jquery.com/

  • 嗨,我只是在这个问题上添加了我的代码。我写了$('html')。replateWith(html_data),但收到错误:“ jquery.js:5894 Uncaught HierarchyRequestError:无法在'Node'上执行'replaceChild':类型为'#document-fragment'的节点可能不是插入“ #document”类型的节点内。” (2认同)
  • 最后,我只是使用$('html')。html(html_data)解决此问题。谢谢! (2认同)