【问题标题】:parse html string with jquery用jquery解析html字符串
【发布时间】:2009-04-01 09:03:25
【问题描述】:

我有一个来自 Ajax 加载源的 HTML 字符串。在将 HTML 放入文档之前,我想从该字符串中的对象(图像)获取一些属性。

我有类似的东西:

$.ajax({  
        url: uri+'?js',  
        success: function(data) { 
            var htmlCode = $(data).html();  

            $('#otherObject').html(data);
        }  
    });

如何从这个 HTML 字符串中获取属性(例如 src)?

【问题讨论】:

    标签: jquery


    【解决方案1】:

    我不是 100% 确定,但不会

    $(data)
    

    为该数据生成一个带有 DOM 的 jquery 对象,而不是在任何地方连接?或者,如果它已经被解析为 DOM,你可以直接使用 $("#myImg", data),或者任何适合你需要的选择器。

    编辑
    重新阅读您的问题,您的“数据”似乎已经是一个 DOM,这意味着您可以去(假设您的 DOM 中只有一个 img,否则您需要更精确的选择器)

    $("img", data).attr ("src")
    

    如果你想访问 src 属性。如果您的数据只是文本,它可能会起作用

    $("img", $(data)).attr ("src")
    

    【讨论】:

    • 呃,谢谢你的回答!这是解决方案:) 我没看到。我希望你在四月的第一天过得愉快——现在我会感到羞耻;)
    • 嗯,我很抱歉我的评论。您的示例不适用于 ie(在版本 7 中测试)。我用过“$(data)” - “data” - “$(data).html()” - 没有任何效果。有什么建议吗?
    • $("img", $('
      example.com/test.jpg" />
      ')) 曾在FF工作过(没有IE7)。仅包含 IMG 标签或仅包含在正文中不起作用,所以它可能会转换为单个实体?有没有直接试$(data).attr()?
    • 我试过 $(data).attr() 但这也不起作用。我认为它通常不适用于 ie 7。我必须寻找一种解决方法,例如将代码放入隐藏的 div 中,读取属性,然后在文档中显示代码官方。
    • @Roe 非常感谢您的代码...花了大约 2 个小时的时间,现在我找到了方法(您的代码)...再次感谢
    【解决方案2】:

    MarvinS.-

    试试:

    $.ajax({  
            url: uri+'?js',  
            success: function(data) {  
                    var imgAttr = $("img", data).attr('src'); 
                    var htmlCode = $(data).html();
                    $('#imgSrc').html(imgAttr);
                    $('#fullHtmlOutput').html(htmlCode);
            }  
        });
    

    这应该将整个 html 块从 data 加载到 #fullHtmlOutput 并将图像的 src 加载到 #imgSrc。

    【讨论】:

      【解决方案3】:

      只需在您的 img 元素之前添加容器元素,以确保您的 intersted 元素不是第一个,在 ie,ff 中测试

      【讨论】:

        【解决方案4】:

        有一点需要注意——因为我今天遇到了这个问题,这取决于你的 HTML jQuery 可能会也可能不会很好地解析它。 jQuery 不会将我的 HTML 解析为正确的 DOM - 在较小的 XML 兼容文件上它可以正常工作,但我拥有的 HTML(将在页面中呈现)在传递回 Ajax 回调时不会解析。

        最后我只是在字符串中手动搜索了我想要的标签,不理想但确实有效。

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-04
        • 2011-08-30
        • 2012-05-22
        • 2016-05-27
        • 2012-08-29
        • 1970-01-01
        相关资源
        最近更新 更多