今天我在尝试从通过 AJAX 请求下载的 html 字符串中过滤图像数据时遇到了最奇怪的事情(我使用https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain -ajax/jquery.xdomainajax.js这样做)。
我注意到我在尝试下载的图像上收到 404。查看初始化程序堆栈后,该图像似乎位于我的 AJAX 拉回的 html 中。这是相关的堆栈:
b.extend.buildFragment @ jquery-1.9.1.min.js:4
b.extend.parseHTML @ jquery-1.9.1.min.js:3
b.fn.b.init @ jquery-1.9.1.min.js:3
b @ jquery-1.9.1.min.js:3
$.ajax.success @ main.js:86
我在 main.js 中的代码如下所示:
function generateAlbumHTML(album)
{
$.ajax({
url: album.data.url,
type: 'GET',
success: function(data)
{
var albumHtmlStr = "";
var images = $(data.responseText).find('#image-container .zoom');
$.each(images, function(i, item)
{
album.data.url = $(item).attr('href');
albumHtmlStr += generateHTML(album);
});
return albumHtmlStr;
}
});
}
罪魁祸首似乎是我做的第 86 行:
var images = $(data.responseText).find('#image-container .zoom');
这会导致 JQuery 解析 HTML 并开始从 HTML 加载不需要的图像和数据。
以下是 ajax 请求作为 data.responseText 拉回的 html 的链接:http: //pastebin.com/hn4jEgAA
无论如何,我在这里做错了吗?如何在不加载不需要的图像和其他数据等内容的情况下过滤并从该字符串中找到我想要的数据?