我正在尝试使用查询从craigslist检索最后4个结果。我能够从结果中检索除图像的URL以外的所有信息,相反,它会加载一个图像并弹出Uncaught TypeError:Cannot read property'resource'of undefined。非常感谢您的帮助。
这是检索项的图像URL的行:data.query.results.item[i].enclosure.resource
function getRSSFeed(feed){
// Build the YQL query
var qryRSS = 'select * from rss where url='+'"'+feed+'"';
// Initiate the YQL query
$.getJSON("http://query.yahooapis.com/v1/public/yql",
{
// settings API call
q: qryRSS,
format: "json"
},
function(data) {
for (i=0; i<4; i++)
{
// Output a link, using the link attribute and the title attribute
$('body').append('<a href="'+data.query.results.item[i].link+'">'+data.query.results.item[i].title+'<img src="'+data.query.results.item[i].enclosure.resource+'"></a>');
// Output the description, using the description attribute.
$('body').append(data.query.results.item[i].description);
}
});
};
getRSSFeed('https://swmi.craigslist.org/search/sss?format=rss&query=grand%20prix');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
最佳答案
我建议您创建一个函数并验证是否未定义enclosure。下面是完整的示例:
<html>
<head>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
function getRSSFeed(feed){
// Build the YQL query
var qryRSS = 'select * from rss where url='+'"'+feed+'"';
// Initiate the YQL query
$.getJSON("http://query.yahooapis.com/v1/public/yql",
{
// settings API call
q: qryRSS,
format: "json"
},
function(data) {
for (i=0; i<4; i++)
{
// Output a link, using the link attribute and the title attribute
$('body').append('<a href="'+data.query.results.item[i].link+'">'+data.query.results.item[i].title+mountImg(data.query.results.item[i].enclosure)+'</a>');
// Output the description, using the description attribute.
$('body').append(data.query.results.item[i].description);
}
});
};
function mountImg(enclosure){
if(typeof enclosure !== 'undefined')
return '<img src="'+enclosure.resource+'" />';
}
getRSSFeed('https://swmi.craigslist.org/search/sss?format=rss&query=grand%20prix');
</script>
</body>
</html>