我正在尝试使用Google RSS API和AJAX检索RSS信息。大部分时间它工作正常,但我似乎可以出于某种原因选择一个带有JQuery对象的img。 $('img', content).attr('src')
会返回undefined
。
这是JSFiddle
var href = 'http://weheartit.com/pinterest.rss',
url = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=8&callback=?&q='+encodeURIComponent(href);
// Add ul tag to target element
$('#weheartit').append('<ul id="weheartit-feed-stream"></ul>');
// jQuery AJAX call
jQuery.ajax({
url: url,
cache: true,
dataType: 'jsonp',
error: 'There is an AJAX error, revisit code.',
success: function(a){
a = a.responseData.feed.entries;
$.each(a, function(i,item){
if(i < 8){
var content = $($.parseHTML(item.content));
var thumb = $('img', content).attr('src');
console.log(thumb);
var html = '<li class="feed-image-wrapper"><a href="'+item.link+'" target="_blank"><div class="feed-image" style="background: url('+thumb+') no-repeat #dadada; background-size: cover;"></div></a></li>';
}
// Add WeHeartIt feed items to stream
$('#weheartit-feed-stream').append(html);
});
},
complete: function(a){
}
});
答案 0 :(得分:2)
这是因为content
本身就是图像(内容属性的值是<img alt="living life: one triiip at a time" src="http://data1.whicdn.com/images/40891301/large.jpg">
),因此当您使用基于上下文的搜索时,它会查找不存在的后代元素。 / p>
您可以使用
var thumb = content.attr('src');
演示:Fiddle
答案 1 :(得分:1)
只是改变:
---
var thumb = $('img', content).attr('src');
---
到
...
// content is already a jQuery image object
var thumb = content.attr('src');
---
更新了JSFiddle