这是一个简单的疑问:
当我们使用像 $('#content').load( "page.php #content");
这样的东西时,它会在服务器中加载整个 page.php
“side”,然后提取 #content
元素,还是只加载指定的元素?
除此之外,$('#content').load( "page.php #content");
是否与此相同:
$.ajax({
url:"page.php",
type:'GET',
error: function(){
alert("Oops!"); // Em caso de o AJAX dar erro (opcional)
},
success:
function(data){
$('#content').html($(data).find('#content').html());
}
});
说到“从服务器获取的方法”?
最佳答案
是的,这些都是一样的,XMLHttpRequest 无法加载部分页面。
jQuery 将 url 和给定的选择器分开,然后根据 url 加载整个页面,然后使用 find()
根据传入的选择器作为过滤器提取给定的元素.
这是 jQuery load()
的缩短版(稍作修改),只是为了展示它是如何工作的
function(url, params, callback) {
var selector, div, html, self = this;
// if the url param contains a space, get the selector to use as filter
if ( url.indexOf(" ") > -1 ) {
selector = jQuery.trim(url.slice( url.indexOf(" ") ));
url = url.slice(0, url.indexOf(" "));
}
// make regular ajax call
jQuery.ajax({
url : url,
type : "GET",
dataType : "html",
data : params
}).done(function(responseText) {
div = jQuery('<div>');
html = jQuery.parseHTML(responseText);
self.html( div.append( html ).find(selector) );
});
return this;
}
关于javascript - Ajax .load 从服务器检索内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403676/