我有一个AJAX请求,它抓住维基百科页面的来源:
$.ajax({
url: "TrollWikipedia.ashx",
data: {
url: "http://en.wikipedia.org/wiki/20s",
},
type: "GET",
success: function (html) {
var page = $(html);
alert(page.find("#content").length); //Alerts 0
alert(page.html()); //alerts null
}
});
它成功返回页面的来源(我有一个它返回的字符串的副本here on jsFiddle)。
问题:我似乎无法从HTML中创建一个jQuery对象(就像他们here一样)。出于某种原因,它似乎没有正确创建对象。我做错了什么?
答案 0 :(得分:1)
html数据似乎被严重解析(可能在html代码中缺少结束div标记),使用:
$.ajax({
url: "TrollWikipedia.ashx",
data: {
url: "http://en.wikipedia.org/wiki/20s",
},
type: "GET",
datatype: "html",
success: function (html) {
html=html.replace(/(<body [^>]*>)/i, '$1<div>').replace(/(<\/body>)/i, '</div>$1');
var page = $(html);
alert($("#content",page).length); //Alerts 1
alert(page.html()); //alerts html
}
});
答案 1 :(得分:0)
html
字符串包含指向en.wikipedia.org
网站的链接,因此当我们执行$(html)
jQuery
时,由于html标记内的跨域脚本调用可能会出现异常在$(html)