报错说是为空或不是对象 
function aaa(){ 
在这里有一个返回值 ,把他的值给变量b;然后调用另一个function; 
    ccc(b); 

function ccc(str){ 
 for(var i=0;i <str.file.length;i++){ 
alert(srt.file[0].name); 

} 而那个返回值的格式是符合json的 
为什么?

解决方案 »

  1.   

    alert(srt.file[0].name);应该是 str 不是 srt另外应该首先判断 str.file 是否存在,如果不存在,调用 str.file.length 也会出这个错误。
      

  2.   

    提示file.length为空或不是对象
    我alert以后 能输出那个符合json的变量的值;那个值里就有{file[""......]}
    但是我写str.file.length就出错 为什么呢 
      

  3.   

    function aaa(){  
    在这里有一个返回值 ,把他的值给变量b;然后调用另一个function;  
        ccc(b);  
    }这个肯定报错的哈,一个是楼上提出来了书写错误,另外,这个ccc函数接受的是字符串,你给他一个b是什么东西,要是换成“b”这样就可以了哈
      

  4.   

    不行啊  我在ccc函数里var msg = "'"+b+"'"
    也不行
      

  5.   

    str.file.length这个是什么函数,好象没有这个用法,取得str的长度直接用str.length
      

  6.   

    str是个json,所以就的用json的方法
      

  7.   

    alert(str.file) 看看结果是不是 undefined 。如果是的话,确定一下,str 是否包含 file 这个属性,或者说 str 这个对象的 file 属性没有赋值或者值为空。看看得到这个 b 对象的过程中,有没有漏掉什么初始化或赋值的工作。
      

  8.   

    可以的在ccc这个函数里输出str都可以输出来的