Javascript 迭代JSON以创建innerHTML链接

Javascript 迭代JSON以创建innerHTML链接,javascript,jquery,html,json,Javascript,Jquery,Html,Json,好吧,我已经搜索堆栈溢出有一段时间了,但似乎找不到解决问题的方法。我试图遍历JSON,以提取每个最差部分中的所有id和dates。JSON如下所示: [ { "timerName": "FT:Tree", "top_worst": [ { "id": 44083, "date": "2015-07-14T21:31:58+00:00" }, { "id": 44

好吧,我已经搜索堆栈溢出有一段时间了,但似乎找不到解决问题的方法。我试图遍历JSON,以提取每个
最差部分中的所有
id
dates
。JSON如下所示:

[
{
    "timerName": "FT:Tree",
    "top_worst": [
        {
            "id": 44083,
            "date": "2015-07-14T21:31:58+00:00"
        },
        {
            "id": 44059,
            "date": "2015-07-14T20:00:58+00:00"
        },
        {
            "id": 44119,
            "date": "2015-07-14T23:30:31+00:00"
        },
        {
            "id": 44065,
            "date": "2015-07-14T20:20:46+00:00"
        },
        {
            "id": 43981,
            "date": "2015-07-14T15:20:50+00:00"
        }
    ],
    "daily_percentile_90th": 26651,
    "daily_average": 22076
},
{
    "timerName": "Search:Blog",
    "top_worst": [
        {
            "id": 44087,
            "date": "2015-07-14T21:28:48+00:00"
        },
        {
            "id": 44087,
            "date": "2015-07-14T21:22:54+00:00"
        }
    ],
    "daily_percentile_90th": 9248.1,
    "daily_average": 9040.5
},
{
    "timerName": "Search:ViewImage",
    "top_worst": [
        {
            "id": 44152,
            "date": "2015-07-15T01:04:53+00:00"
        },
        {
            "id": 44092,
            "date": "2015-07-14T21:41:27+00:00"
        },
        {
            "id": 44230,
            "date": "2015-07-15T05:22:44+00:00"
        },
        {
            "id": 44074,
            "date": "2015-07-14T20:40:57+00:00"
        },
        {
            "id": 44098,
            "date": "2015-07-14T22:03:25+00:00"
        }
    ],
    "daily_percentile_90th": 6545.6,
    "daily_average": 5571.49
}
]
所以问题是,我的for循环会导致问题,因为不是所有计时器都有最坏的部分,所以当我尝试在for循环中使用
.length
时,它会抛出一个错误。目标是使用id作为链接的一部分在表单元格中获取链接,然后使用日期作为可见部分。如果您感到困惑,请参见下图(别担心,我也很清楚)。以下是我的HTML代码,您可以看到发生了什么:

function createTable(jsonData){
$.each(jsonData, function(i, item){

    var daily90th = (item.daily_percentile_90th/1000).toFixed(2);
    var dailyAverage = (item.daily_average/1000).toFixed(2);

    var $tr = $("<tr class='clickable'>").append(
        $("<td align='left'>").text(item.timerName),
        $("<td class='daily90'>").text(daily90th),
        $("<td class='dailyAvg'>").text(dailyAverage)).appendTo("#reportTable");

    var $ta = $("<tr id='spaces"+(i)+"'>").append(
        $("<td id='createLinks"+(i)+"'>")).appendTo("#reportTable");


        var where = document.getElementById('createLinks'+(i));
        where.innerHTML = "<a href='http:/example.com/example.html?id=44217'>2015-07-15T04:43:49+00:00</a>";            

});
} 
函数createTable(jsonData){
$。每个(jsonData,函数(i,项){
var daily90th=(项目每日百分位/1000)。toFixed(2);
var Dailayaverage=(项目日平均值/1000)。toFixed(2);
var$tr=$(“”)。追加(
$(“”).文本(item.timerName),
$(“”)。文本(每日第90次),
$(“”).text(dailyAverage)).appendTo(“#reportTable”);
变量$ta=$(“”)。追加(
$(“”)。附录(“#报告表”);
其中var=document.getElementById('createLinks'+(i));
where.innerHTML=“”;
});
} 
在这方面的任何帮助都将是伟大的!!!这里还有一把小提琴:

这是我的站点上的外观,但我需要动态创建它们,而不是一个静态链接


谢谢你们

正常的
for
循环有什么问题

var where = $('#createLinks'+(i));
for (var i in item.top_worst) {
    var bad = item.top_worst[i];
    console.log(bad);
    where.append("<a href='http://example.com/example.html?id=44217'>"+bad.date+"</a><br/>");
}
var-where=$('#createLinks'+(i));
用于(项目中的var i.top\U最差){
var bad=项目。顶部\最差[i];
控制台日志(坏);
式中。追加(
); }

你能发布对你不起作用的代码吗?我只是把最后几行放在一个for循环中,如下所示:
for(var k=0;k>jsonData.top_最坏的.length;k++){var where=document.getElementById('createLinks'+I);where.innerHTML=“”;}
@Joe但是for循环留下了这个错误:无法读取长度的属性未定义。如果我在适当的地方使用以下任何一个,它就会这样做:1)jsonData[I].top\u-best.id 2)jsonData.top\u-best[I].id等等。这是因为一些JSON值没有与top\u-best一起出现。有没有一种方法可以跳过这些?你在每次迭代中都会替换内部HTML。尝试将其附加到元素。感谢您的帮助@Joe:)问题是我太笨了,没有在项中使用
var I。top\u-best
而不是尝试使用
top\u-best.length
。非常感谢@StoyanDekov!!!