好的,所以在调用AJAX Get请求后,调用'success'并传递字符串'data',其中包含所请求站点的html。现在,我想提取当前站点的<body>
标记中的所有内容,并将其替换为存储在数据字符串中的<body>
标记中的所有内容。这是怎么做到的?
我尝试var b = $(data).find('body');
然后.replaceWith(b)
,但b
显然是一个对象。
感谢您的帮助!
编辑; Ajax的:
$.ajax({
type: "GET",
url: "managefiles.php",
dataType: "html",
success: function(data){
...
}
});
答案 0 :(得分:4)
答案 1 :(得分:2)
答案 2 :(得分:2)
$( '主体')的html(数据);
答案 3 :(得分:2)
这可能有点棘手,因为在将整个HTML文档传递到jQuery对象的情况下,浏览器的行为会有所不同。
根据您使用的浏览器,某些标记(在某些情况下包括<body>
)将被删除。
虽然您可以将整个HTML文档添加到当前<body>
并希望浏览器做正确的事情,但最好让您的服务器仅返回您实际需要的内容。
编辑:如果您无法修改来自源代码的HTML,您可以尝试这样做,以使其更安全一点:
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 );