我从其他页面加载HTML以提取并显示该页面中的数据:
$.get('http://example.org/205.html', function (html) { console.log( $(html).find('#c1034') ); });
确实可以,但是由于$(html)我的浏览器尝试加载在205.html中链接的图像。这些图像在我的域中不存在,因此出现很多404错误。
$(html)
有没有办法像解析页面一样$(html)但不将整个页面加载到浏览器中?
实际上,如果您查看jQuery文档,它说您可以将“所有者文档”作为第二个参数传递给$。
$
因此,我们可以做的是创建一个虚拟文档,以使浏览器不会自动加载提供的HTML中存在的图像:
var ownerDocument = document.implementation.createHTMLDocument('virtual'); $(html, ownerDocument).find('.some-selector');