无法使用带有for循环的jquery读取json数据

时间:2012-11-02 08:21:23

标签: javascript json

我有一个数据对象,里面有数据对象,里面有json数据。这是怎样的样子。该文件的名称为data.js

var data = 
[
{
    title: 'this is title one',
    commit: 'this is commit'
},
{
    title: 'this is title two',
    commit: 'this is commit'
},
{
    title: 'this is title three',
    commit: 'this is commit'
},
{
    title: 'this is title four',
    commit: 'this is commit'
},
{
    title: 'this is title five',
    commit: 'this is commit'
},
{
    title: 'this is title six',
    commit: 'this is commit'
},
{
    title: 'this is title seven',
    commit: 'this is commit'
}
]

这是我的代码

for (var i = 0; i < data.length; i++) { 
                $(container).load(view, function () {
                    console.log(data[i].title);
                    li.append('<img src="../images/profile.png" alt="Profile photo" />');
                    li.append('<span class="commit">' + data[i].title + '</span>');
                    li.append('<p><a href="#" class="comment">' + data.commit + '</a></p>');
                    li.append('<section class="clear"></section>');
                    $('#home ul').append(li);
                });
            }

现在我在控制台中收到此错误

Cannot read property 'title' of undefined

以上错误就在这一行

li.append('<span class="commit">' + data[i].title + '</span>');

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

嗯,data.js不是真正的json。

首先从load()切换到getJSON()

$.getJSON(view, function(data) { })

接下来删除该行

var data =

只有json内容。 jQuery会将JSON分配给参数数据。

答案 1 :(得分:0)

您的json数组包含错误。

您可以在http://json.parser.online.fr/

验证您的json

必须如此:

{
"title": ["this is title one", "this is title two", "this is title three", "this is title four", "this is title five", "this is title six", "this is title seven" ]
,
"commit": [ "this is commit", "this is commit", "this is commit", "this is commit", "this is commit", "this is commit", "this is commit" ]
}