jQuery JSON。每个错误

jQuery JSON。每个错误,jquery,json,getjson,each,Jquery,Json,Getjson,Each,我有一个JSON对象,看起来像这样 [ { "id" : "23", "event_id" : "0", "sport_title" : null, "event_title" : null, "title" : "Under 1 day!", "content" : "It\\'s all hotting up and battle commences in under one d

我有一个JSON对象,看起来像这样

[
    {
        "id" : "23", 
        "event_id" : "0", 
        "sport_title" : null, 
        "event_title" : null, 
        "title" : "Under 1 day!", 
        "content" : "It\\'s all hotting up and battle commences in under one day!", 
        "link" : ""
    },

    {
        "id" : "20", 
        "event_id" : "0",
        "sport_title" : null, 
        "event_title" : null,
        "title" : "Getting Exciting", 
        "content" : "Less than two days till it all kicks off, with cricket....", 
        "link" : ""
    }
]
我正试图从这个JSON对象中获取详细信息,并将它们预先添加到

我目前正在尝试的代码看起来像这样,并且有问题

var writeup_list = writeuplist;

$.getJSON('../json/getWriteups.json', function(data) {

    $.each(data.items, function(i, item) {
        writeup_list.html(function() {
            var output;
            output = '<li><a href="/writeups/index.php#writeup_' + item.id + '">';
            if(item.sport_title != null) {
                output += item.sport_title + ' - ';
            }
            output += item.title + '</a></li>';

            return output;
        });
    });

});
var writeup_list=writeuplist;
$.getJSON('../json/getWriteups.json',函数(数据){
$.each(data.items,function(i,item){
writeup_list.html(函数(){
var输出;
输出=“
  • ”; 返回输出; }); }); });
    writeuplist只是ul对象

    我还担心覆盖列表中已有的信息或只是再次添加。不希望继续添加相同的数据。避免这种情况的好方法是什么

    我似乎在从JSON文件中获取数据时遇到了问题,我相信这与我试图在.each函数中访问它的方式有关


    有人能发现哪里出了问题吗?

    我认为你应该使用:

    $(data.items).each(function(i, item) {
    
    但是,您也可以使用标准javascript循环来执行相同的操作:

    for (var i = 0; i < data.items.length; i++) {
        var item = data.items[i];
    

    我认为你应该使用:

    $(data.items).each(function(i, item) {
    
    但是,您也可以使用标准javascript循环来执行相同的操作:

    for (var i = 0; i < data.items.length; i++) {
        var item = data.items[i];
    
    jQuery.getJSON('../json/getWriteups.json',函数(数据){
    var输出=“”;
    每个(data.items,函数(index,item){
    输出+='
  • '; }); writeup_list.html(输出); });
    需要注意的一些事项:

  • 您确定data.items是访问阵列的正确方法吗?(尝试在回调中执行
    alert(data.items)
    ,并确保看到[object Array])
  • 您确定
    项目。运动标题
    将为空吗?我把它改成了一个字符串
  • 在进行过程中构建一个列表元素字符串,然后在最后将其添加到DOM中,比在进行过程中将元素添加到DOM中要快
  • 执行
    element.html(str)
    将替换当前内容。您的示例用每个迭代替换当前html,因此在最后,您只拥有列表中最后一个列表元素的内容
  • jQuery.getJSON('../json/getWriteups.json',函数(数据){
    var输出=“”;
    每个(data.items,函数(index,item){
    输出+='
  • '; }); writeup_list.html(输出); });
    需要注意的一些事项:

  • 您确定data.items是访问阵列的正确方法吗?(尝试在回调中执行
    alert(data.items)
    ,并确保看到[object Array])
  • 您确定
    项目。运动标题
    将为空吗?我把它改成了一个字符串
  • 在进行过程中构建一个列表元素字符串,然后在最后将其添加到DOM中,比在进行过程中将元素添加到DOM中要快
  • 执行
    element.html(str)
    将替换当前内容。您的示例用每个迭代替换当前html,因此在最后,您只拥有列表中最后一个列表元素的内容

  • 首先,不要使用
    data.items
    ,而应该使用
    data
    。在您的例子中,返回的数据是一个数组,因此您希望迭代该数组

    其次,代码的编写方式会不断覆盖
    writeup\u列表
    的内容。相反,构建html字符串,然后在末尾设置:

    $.getJSON('../json/getWriteups.json', function(data) {
        var output = '';    
        $.each(data, function(i, item) {
            output += '<li><a href="/writeups/index.php#writeup_' + item.id + '">';
            if(item.sport_title != null) {
                output += item.sport_title + ' - ';
            }
            output += item.title + '</a></li>';
        });
    
        writeup_list.html(output);
    });
    
    $.getJSON('../json/getWriteups.json',函数(数据){
    var输出=“”;
    $。每个(数据、功能(i、项){
    输出+='
  • '; }); writeup_list.html(输出); });
    首先,您应该只使用
    数据,而不是
    数据.items
    。在您的例子中,返回的数据是一个数组,因此您希望迭代该数组

    其次,代码的编写方式会不断覆盖
    writeup\u列表
    的内容。相反,构建html字符串,然后在末尾设置:

    $.getJSON('../json/getWriteups.json', function(data) {
        var output = '';    
        $.each(data, function(i, item) {
            output += '<li><a href="/writeups/index.php#writeup_' + item.id + '">';
            if(item.sport_title != null) {
                output += item.sport_title + ' - ';
            }
            output += item.title + '</a></li>';
        });
    
        writeup_list.html(output);
    });
    
    $.getJSON('../json/getWriteups.json',函数(数据){
    var输出=“”;
    $。每个(数据、功能(i、项){
    输出+='
  • '; }); writeup_list.html(输出); });
    关于数据项的看法是正确的,结果证明这些数据项只是数据。现在,我们将在计时器中测试这段代码,看看它是否添加了相同的内容。。。我不想让它这样做!数据项是正确的,结果只是数据。现在,我们将在计时器中测试这段代码,看看它是否添加了相同的内容。。。我不想让它这样做!