小编典典

从jQuery AJAX请求解析返回的HTML

ajax

我想做的事情似乎很简单:通过 HTML 页面$.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。这是一个已知问题吗?


阅读 680

收藏
2020-07-26

共1个答案

小编典典

您的代码工作正常。您只是没有正确使用jsFiddle的API。检查文档中的/echo/html/http://doc.jsfiddle.net/use/echo.html#html):

网址:/ 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/

2020-07-26