JQuery img src选择器返回undefined

时间:2014-05-26 03:16:27

标签: jquery ajax json rss

我正在尝试使用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){
    }
});

2 个答案:

答案 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