我有一个来自Ajax加载源的HTML字符串。在将HTML放入文档之前,我想从此字符串中的对象(图像)获取一些属性。
我有类似的东西:
$.ajax({
url: uri+'?js',
success: function(data) {
var htmlCode = $(data).html();
$('#otherObject').html(data);
}
});
如何从此HTML字符串中获取属性(例如src
)?
答案 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回调时不会解析。
最后,我只是在字符串中手动搜索我想要的标签,这不太理想,但确实有效。