jQuery:查询$ .get()返回的字符串

时间:2009-10-02 07:08:41

标签: javascript jquery ajax get

如何查询通过$ .get获得的字符串?例如,我想只在形式google身体html:

$.get("www.google.com", function(data){
var body = $("body", data).html(); //This doesnt work
});

甚至可能吗? 感谢

2 个答案:

答案 0 :(得分:2)

不,jQuery无法直接访问通过XmlHttpRequest加载的页面的DOM。为此,您必须使用用JavaScript编写的HTML解析器,如the one that John Resig wrote。尽管如此,这仍然比你想象的要困难得多。

答案 1 :(得分:2)

有一点是,这不会起作用,因为你需要一个HTML解析器。另一个是,除非你在www.google.com上这样做,否则因为same origin policy而无法工作。有一些方法可以避免这种情况,最流行的是JSONP,但这也可以手动完成,而不使用jQuery定义的jsonp方法。

编辑:
如果您不想解决从JavaScript中的其他域获取内容的问题,另一种方法是使用您的服务器,PHP,.NET等获取远程页面然后将其返回使用AJAX的JavaScript。这将比直接在js中执行更耗时,因为您正在执行2个请求而不是一个请求。但是,根据您的服务器工具,您可能更容易解析html而不是在js中执行此操作,因此您可以更轻松地将所需内容添加到页面中。