我正在尝试在构建简单的RSS提要时学习AngularJS。我设法发出JSON请求并检索所有数据,标题,链接,描述和我解析的所有RSS。我提取这样的图像:
angular.forEach(feed.entries, function(value){
value.myImage = $(value.content).find('img').eq(0).attr('src');
console.log('image' + value.myImage);
}
但是,有些Feed具有不同的结构,而是将图像放在<content> </content>
<description> </description>
内,angular.forEach(feed.entries, function(value){
value.myImage = $(value.description).find('img').eq(0).attr('src');
console.log('no image' + " " + value.myImage);
});
就像this一样放在Object {feedUrl: "https://www.behance.net/rss", title: "Behance Featured Projects", link: "http://www.behance.net", author: "", description: "The latest projects featured on the Behance"…}
$$hashKey: "027"
author: ""
description: "The latest projects featured on the Behance"
entries: Array[10]
0: Object
$$hashKey: "029"
author: ""
categories: Array[0]
content: "<img src="https://mir-s3-cdn-cf.behance.net/projects/404/2e322a33145177.Y3JvcCw4NzYsNjg0LDAsNzc.jpg" style="float:left;margin-right:15px"><br> Various Illustrations by Patryk Hardziej / 2015"
contentSnippet: " Various Illustrations by Patryk Hardziej / 2015"
link: "https://www.behance.net/gallery/33145177/Various-Illustrations-2015"
publishedDate: "Thu, 28 Jan 2016 08:00:02 -0800"
sImage: undefined
title: "Various Illustrations 2015"
内。我试图这样做:
li
但我得到的都是未定义的,所以我无法显示此Feed中的图像。我尝试了不同的方法,但我真的迷路了,我不确定我在这里做错了什么。
我一直在谷歌上搜索这几周。任何帮助都非常感激!
谢谢:)
这是我得到的JSON对象。
$('ul.internal-nav-list > li').on('click', function () {
$(this).siblings('li').slideUp();
$(this).slideDown();
});
答案 0 :(得分:1)
好的,我想我找到了它。)
您从查询中获得的HTML看起来像
<img src="..."> Some text <br/> Some text ...
find方法仅用于查找子节点。在这种情况下,img不是value.content的子项,因此它不会返回任何内容。
你可以做到
angular.forEach(feed.entries, function(value){
// force creation of a root node -> find method should works for all cases
var content = '<div>'+value.content+'</div>';
value.myImage = $(content).find('img').eq(0).attr('src');
console.log('image' + value.myImage);
}