首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解析从jQuery AJAX请求返回的HTML

解析从jQuery AJAX请求返回的HTML
EN

Stack Overflow用户
提问于 2013-11-16 02:07:05
回答 7查看 94.7K关注 0票数 22

我想要做的似乎很简单:通过$.ajax()获取一个超文本标记语言页面,并从中提取一个值。

代码语言:javascript
复制
$(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拒绝解析返回的超文本标记语言。

同时,我使用的fiddle不能正常工作,所以我几乎不能提供一个正常工作的示例。

更新:我的new fiddle运行得很好,但问题似乎是在我的实际项目中,我试图解析大量复杂的HTML.这是一个已知的问题吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-11-16 02:40:30

您的代码运行良好。您只是没有正确地使用jsFiddle的API。检查文档中是否有/echo/html/ (http://doc.jsfiddle.net/use/echo.html#html):

回应网址:/

/html/

数据必须通过POST提供

因此,您需要更新AJAX调用才能使用POST。尾部的斜杠也是必需的。

代码语言:javascript
复制
$(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/

票数 19
EN

Stack Overflow用户

发布于 2013-11-16 02:12:16

如果您想解析它,jquery有一个绝妙的技巧:)

代码语言:javascript
复制
 ParsedElements = $(htmlToParse);
 Console.log(ParsedElements);

现在,您有了DOM元素,您可以遍历这些元素,而无需将它们放在文档体中。

票数 7
EN

Stack Overflow用户

发布于 2013-11-16 02:25:54

jQuery.parseHTML()

http://api.jquery.com/jQuery.parseHTML/

代码语言:javascript
复制
str = "hello, <b>my name is</b> jQuery.",
  html = $.parseHTML( str ),
  nodeNames = [];

// Gather the parsed HTML's node names
$.each( html, function( i, el ) {
  nodeNames[ i ] = "<li>" + el.nodeName + "</li>";
});

你的小提琴上的ajax有些问题

http://jsfiddle.net/hcrM8/5/

代码语言:javascript
复制
var html= '<!DOCTYPE html><head><title><\/title><link href="../css/popup.css" rel="stylesheet" /><\/head><body><ul><li><a class="disabled" id="link">content<\/a><\/li><\/ul><\/body><\/html>';
            h = $.parseHTML(html);
            $('#data').text(h);
            $('#wtf').html($(h).find('#link').text());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20007721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档