我想做的事情看起来很简单:通过 $.ajax()
获取一个 HTML 页面并从中提取一个值。
$(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。
fiddle我正在玩这个,但同时不能正常工作,所以我无能为力提供一个有效的例子。
更新:我的 new fiddle工作正常,但问题似乎是在我的实际项目中我试图解析大量复杂的 HTML。这是一个已知问题吗?
最佳答案
您的代码运行良好。您只是没有正确使用 jsFiddle 的 API。检查文档中的 /echo/html/
( http://doc.jsfiddle.net/use/echo.html#html ):
URL: /echo/html/
Data has to be provided via 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>'
}
});
});
关于javascript - 解析从 jQuery AJAX 请求返回的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20007721/