无法读取属性'未定义'未定义,但I'我确信var是有效的
Cannot read property 'undefined' of undefined, but I'm sure the var is valid
我正在解析一个smil(xml)文件以获取路径名列表。解析进行得很顺利,并且存储在一个巨大的文本对象中。
但当我试图取回信息时,我只得到:
/home/pi/RaspberryPiTV-master/app.js:158
Playlist.push(smil.playlist.video[i].src);
^
TypeError: Cannot read property 'undefined' of undefined
at /home/pi/RaspberryPiTV-master/app.js:158:46
at /home/pi/RaspberryPiTV-master/app.js:321:39
at Object.oncomplete (fs.js:93:15)
代码如下:
var smil={}, i=0;
Playlist=[];
parse("/home/pi/test.smil", function (parsed){
smil=parsed;
console.dir(util.inspect(smil, false, null));
do
{
Playlist.push(smil.playlist.video[i].src);
i=i+1;
}while(i<smil.playlist.video.length-1);
...
}
函数解析(路径名、回调)非常庞大,但由于打印它确实有效,所以它确实有效:
{
stream:
[
{ name: 'Stream1' }
],
playlist:
[
{ video:
[
{ src: 'L.mp4', start: '5', length: '5' },
{ src: 'SW.mp4', start: '50', length: '5' },
{ src: 'HN.mp4', start: '150', length: '5' }
],
name: 'pl1',
playOnStream: 'Stream1',
repeat: 'true',
scheduled: '2013-07-23 11:00:00'
}
]
}
我是不是错过了什么?我只是不明白为什么我没有定义,因为我确实得到了正确的打印。
playlist
是一个数组。
更换
smil.playlist.video[i].src
带有
var index = 0; // or whatever
smil.playlist[index].video[i].src
根据您的JSON,playlist
是一个数组:
playlist:
[ <-- Array declaration
{ ... }
]
然而,你正在做:
smil.playlist.video[i].src
-------------^
您需要参考playlist
的索引。
这意味着video[i]是未定义的,因此未定义对象上的任何方法都将是不定义的!尝试打印出smil.playlist.
相关文章:
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- Google Script var获取未定义的值
- 断言var集通过<输入ng模型>不是未定义的
- Javascript requestData未定义,尽管为JSON设置了var
- 使用 Javascript/JQuery 并在页面加载时获取未定义的 var
- winJS 从函数未定义返回 var
- 为什么我需要将“var value = val;”更改为“this.value = val;”,这样我就不会收到“未定义
- JavaScript,jquery中未定义的VAR的问题.如何
- 火狐插件未定义的 var 来自框架
- 未初始化的 var 不应该总是未定义类型
- 是否可以使用 for 循环进行 DRY 量角器测试?*VaR 即将出现未定义*
- 未捕获的错误未定义不是函数 var ajax_url = $('#ajax_url').val();
- IE8 javascript/jQuery中未定义的var
- JavaScript范围问题,嵌套函数中的var访问未定义
- javascript:var仅在IE中未定义
- 无法读取属性'未定义'未定义,但I'我确信var是有效的
- 为什么未定义var检查器
- 无法在方法中设置未定义的属性“var”
- JSLint-'var未定义'由外部脚本文件引起的错误
- Javascript Sharepoint preaveaction总是得到var未定义