3
$("#loader").load(someurl, null, function ()
{
    var html = $("#loader").html(); 
    alert(html);  //works 
});

然而,

$("#loader").load(someurl, "body", function ()
{
    var html = $("#loader").html(); 
    alert(html);  //does NOT work 
});

我尝试在 phonegap/cordova 上获取外部主机 html 数据。

filetransfer.downloadAPI 不适用于我的 html 获取,我发现 jQuery .load 函数运行良好并认为它很有用,因为不涉及文件管理,而只涉及内存。

一个问题是,由于整个 HTML 一次加载到某些$("#loader")css/样式表上,以html.body解决层冲突和混乱。

因此,我尝试仅获取 html http://api.jquery.com/load/的正文部分

.load( url [, data] [, complete(responseText, textStatus, XMLHttpRequest)] )

但是,[, data]选项永远不会起作用。

"html>body"不起作用,或者任何选择器似乎都不起作用。

这是bug吗??

4

3 回答 3

2

选择器应附加到 url(用空格分隔)。

$("#loader").load(someurl + ' body', function (){
    var html = $("#loader").html(); 
    alert(html);
});
于 2012-09-04T06:16:18.933 回答
1

data 参数用于发出加载请求,如果要过滤页面中的内容,则必须将选择器添加到 url 的末尾,以空格分隔。

$("#loader").load(someurl + ' body', function (){
    var html = $("#loader").html(); 
    alert(html);
});
于 2012-09-04T06:18:27.997 回答
1

您可以使用 load 方法仅加载页面的一部分。您需要在第一个参数中提供选择器。(参见Load() apiLoading Page Fragments部分)

$('#loader').load('ajax/test.html body',function(){
var html = $("#loader").html();
alert(html);

});
于 2012-09-04T06:20:18.713 回答