Ok so after an AJAX Get request 'success' is called and the string 'data' is passed, which contains the html of the site requested. Now I want to extract everything in the <body> tag of the current site and repl开发者_如何学JAVAace it with everything in the <body> tag that's stored in the data string. How is this done?
I tried var b = $(data).find('body'); and then .replaceWith(b) but b is apparently an object.
Thanks for your help!
Edit; Ajax:
$.ajax({
type: "GET",
url: "managefiles.php",
dataType: "html",
success: function(data){
...
}
});
All that you need to do is replace the html() of the body tag
$("body").html($(data).find("body"));
http://api.jquery.com/html/
Append it to body
$("body").empty(); // clear
b.appendTo("body"); // append new
- jQuery appendTo
$('body').html(data);
This can be a little tricky because browsers behave differently in the situation where you pass an entire HTML document into a jQuery object.
Depending on which browser you're using, some tags (including <body> in some cases) will be stripped away.
While you could just add the entire HTML document to the current <body> and hope that the browser does the right thing, it would be better to have your server return only the content you actually want.
EDIT: If you can't modify the HTML coming from the source, you could try this in order to make it a little safer:
var $data = $(data);
var $contents;
if( $data.filter('body').length ) {
$contents = $data.filter('body').contents();
} else if( $data.find('body').length ) {
$contents = $data.find('body').contents();
} else {
$contents = $data;
}
$(document.body).empty().append( $contents );
加载中,请稍侯......
精彩评论