使用jquery解析html字符串

时间:2009-04-01 09:03:26

标签: jquery

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

我有类似的东西:

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

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

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

4 个答案:

答案 0 :(得分:107)

我不是100%肯定,但不会

$(data)

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

修改
重读你的问题看来你的“数据”已经是一个DOM,这意味着你可以去(假设你的DOM中只有一个img,否则你需要一个更精确的选择器)

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

如果要访问src-attribute。如果您的数据只是文本,那么可能会这样做

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

答案 1 :(得分: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块从数据加载到#fullHtmlOutput,将图像的src加载到#imgSrc。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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