jQuery TypeError:data.incidentList [j]未定义

时间:2015-10-26 15:06:48

标签: jquery arrays

我尝试访问多维数组,这是结构

{  
   "incidentsNumber":176,
   "itemInterval":"3",
   "incidentList":[  
      {  
         "id":"849098658",
         "transactionId":"37035630",
         "timeStamp":"2015-05-17 09:14:27.440"
      },
      {  
         "id":"849098851",
         "transactionId":"37035638",
         "timeStamp":"2015-05-17 09:16:55.650"
      }
   ]
}

这是jQuery代码:

for(var j=0; j<=data.incidentList.length; j=(parseInt(j)+parseInt(itemInterval))) {
    var buttonid = '#btn'+ parseInt(j);
    $(buttonid).click(function (j) {
        console.log(data.incidentList[j]['transactionId']);
    });
}

但如果我从1开始使用j,我会收到以下错误:

TypeError: data.incidentList[j] is undefined 

如果我从0开始使用j,我就不会收到错误,但按钮不会对其执行操作。 所以我的代码在任何情况下都不起作用。 有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

$(buttonid).click(function (j) {
    console.log(data.incidentList[j]['transactionId']);
});

为什么要重新定义jj将是javascript click事件。这不是你想要的。如果你这样写,这个新j将“遮蔽”原始j。只需删除此j参数并写下:

$(buttonid).click(function () {
    console.log(data.incidentList[j]['transactionId']);
});

您也可以重命名此参数:

$(buttonid).click(function (event) {
    console.log(data.incidentList[j]['transactionId']);
});

这两个代码都有效。