问题描述
- 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+'"';
解决方案
看看数组的数量是否满足k
解决方案二:
你下面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+'"';
时间: 2024-08-03 22:23:54