我在以下位置访问以下JSON数据:
http://veratech.co.nz/blog/?json=1
当我尝试访问" url"位于下面代码第4行的数组中的属性,我得到一个未定义的错误。即使它将出现在console.log(第13行)中,也包含console.log(val.attachments [0] .url);.
以下代码:
$.each(data.posts, function(index, val){
output += '<li>';
output += '<a href="#blogpost" onclick = showPost(' + val.id + ')">';
output += '<img src="' + val.attachments[0].url + '" alt="">';
output += '<h3>' + val.title + '</h3>';
//Here we shorten the paragraph to 60 characters.
var str = val.excerpt;
var paraInfo = str.slice(0, 60);
output += '<p>' + paraInfo + '</p>';
//Closing off the the closing html tags
output += '</a>';
output += '</li>';
console.log(val.attachments[0].url);
});//Go through each post
建议将不胜感激
答案 0 :(得分:0)
我认为还有其他问题。
我手动下载了json,并编写了这段代码:
HTML:
Urls:
<ul id="foo">
</ul>
JavaScript的:
function extractUrls(data) {
var $foo = $('#foo');
$.each(data.posts, function (i, p) {
$foo.append($('<li></li>').text(p.attachments[0].url));
});
}
var jsonData = { /* code omitted for brevity */ };
extractUrls(jsonData);
我的输出是:
Urls:
<ul id="foo">
<li>http://veratech.co.nz/blog/wp-content/uploads/2014/03/martial.jpg</li>
<li>http://veratech.co.nz/blog/wp-content/uploads/2013/12/grave.jpg</li>
<li>http://veratech.co.nz/blog/wp-content/uploads/2013/12/GTA5.jpg</li>
<li>http://veratech.co.nz/blog/wp-content/uploads/2013/10/miyagi.jpg</li>
<li>http://veratech.co.nz/blog/wp-content/uploads/2013/08/htc-box.png</li>
<li>http://veratech.co.nz/blog/wp-content/uploads/2013/08/scaffold1.jpg</li>
<li>http://veratech.co.nz/blog/wp-content/uploads/2013/07/barriera.png</li>
<li>http://veratech.co.nz/blog/wp-content/uploads/2013/06/tv.jpg</li>
</ul>
注意:您应该能够将var jsonData =
行替换为:
$.get('http://veratech.co.nz/blog/', { json: 1 }, extractUrls, 'json');
反正;看不出你的代码出了什么问题?你确定这是问题吗?
PS:我甚至在$.each
循环中添加了以下内容:
if (!p.attachments[0].url) {
alert(p.id + ' has undefined url!');
}
并没有看到任何警报......