我想做的事情似乎很简单:通过 HTML 页面$.ajax()并从中提取一个值。
$.ajax()
$(function () { $.ajax({ url: "/echo/html", dataType: "html", success: function (data) { $('#data').text(data); $('#wtf').html($(data).find('#link').text()); }, data: { html: '<!DOCTYPE html><head><title><\/title><link href="../css/popup.css" rel="stylesheet" /><\/head><body><ul><li><a id="link">content<\/a><\/li><\/ul><\/body><\/html>' } }); });
问题是 jQuery 拒绝解析返回的HTML。
同时,我正在玩的小提琴没有用,因此我无法提供其他可行的示例。
更新: 我的新提琴工作正常,但是似乎问题在于,在我的实际项目中,我试图解析大量复杂的HTML。这是一个已知问题吗?
您的代码工作正常。您只是没有正确使用jsFiddle的API。检查文档中的/echo/html/(http://doc.jsfiddle.net/use/echo.html#html):
/echo/html/
网址:/ echo / html / 数据必须通过POST提供
网址:/ echo / html /
数据必须通过POST提供
因此,您需要更新AJAX调用才能使用POST。另外,末尾的斜杠也是必需的。
$(function () { $.ajax({ url: "/echo/html/", type: "post", dataType: "html", success: function (data) { $('#data').text(data); $('#wtf').html($(data).find('#link').text()); }, data: { html: '<!DOCTYPE html><head><title><\/title><link href="../css/popup.css" rel="stylesheet" /><\/head><body><ul><li><a id="link">content<\/a><\/li><\/ul><\/body><\/html>' } }); });
演示:http : //jsfiddle.net/hcrM8/6/