barry_di
barry_di
2015-11-13 05:46
采纳率: 85.4%
浏览 3.4k
已结题

js 定义的全局变量 在使用的时候报 undefined 错误

alarmInputData = {};   //定义的全局变量

function alram_getCfgEx_success_callback(data)
{

    //alert("recv: "+ data);
    var msg = JSON.parse(data);
    alarmInputData = msg.result.args;
    var day = new Date();
    day = day.getUTCDay();
    setSelectedByValue("alramInput_date",day);  
    loadsetAlarmTimeVal(alarmInputData.inputs[0].timetable.timeSlice[day]);
}

在使用时用alert()可以显示出值,但是执行后面的字符串相加的会报 TypeError: alarmInputData.inputs[k] is undefined 的错误。

 alert(alarmInputData.inputs[k].timetable.timeSlice[i][j].startHour);//会打印出值
timeStr[j] = '"startHour":'+'"'+alarmInputData.inputs[k].timetable.timeSlice[i][j].startHour+'"';
  • 点赞
  • 收藏

2条回答 默认 最新

  • enpterexpress
    把分全给哥 2015-11-13 05:56
    已采纳

    看看数组的数量是否满足k

    点赞 评论
  • showbo

    你下面2句是在alram_getCfgEx_success_callback里面的还是什么?看你代码alram_getCfgEx_success_callback是异步获取数据后的回调函数,如果你后续代码不在这个函数里面,会有问题,因为异步获取数据有个时间差,你直接使用数据不一定返回执行了alram_getCfgEx_success_callback进行变量的赋值

    alert(alarmInputData.inputs[k].timetable.timeSlice[i][j].startHour);//会打印出值
    timeStr[j] = '"startHour":'+'"'+alarmInputData.inputs[k].timetable.timeSlice[i][j].startHour+'"';

    点赞 评论

相关推荐