var arrUrl=new Array();
function CutPic(参数)
{
   在函数中对数组进行赋值
}在函数外使用数组arrUrl这时会出现数组中没有值,无法使用在函数中所赋的值请问各位大虾 怎么调用?

解决方案 »

  1.   

    什么意思??  你有没有在使用前先调用你的函数赋值?如果真是作用域的问题.. 你把var arrUrl=new Array();这句前的var去掉.. 定义成全局变量. 不可能取不到值
      

  2.   

    你确定CutPic函数在你使用数组前你调用了么?如果arrUrl定义在页面或者js文件中(非其他函数中)则是全局变量,任何函数里都可以访问。楼上的var去掉真的能行么???
      

  3.   

    去掉var 就是页面全局变量. 这点上我曾经犯过错. 所以记忆深刻..但是楼主的写法是不应该读不到数据的. 所以我和你感觉一样.. 都是认为他没有调用函数赋值而不是作用域的问题..
      

  4.   

    在使用数组arrUrl之前要确保确实赋值过
      

  5.   

    调用的时候加判断
    if(arrUrl.length>0)
    {
    .......
    }
      

  6.   

    1。CutPic()没有调用过. 那里面的代码是没有运行的.. 数组永远没有值2。CutPic()调用过. 数组应该有值但是其他函数取值为空... 看下你页面有没有刷新过
      

  7.   

    应该是数组没给赋过值,就像楼上所说的一样http://www.csharp360.com/bbs/viewthread.php?tid=151&extra=page%3D1
      

  8.   


    <div onload="CutPic('/templets/images/test.jpg|/templets/images/ad_1.gif|')">我是直接加载JS中的CutPic函数
      

  9.   

    可能我说的不大清楚,我在JS外调用函数:页面加载onload="CutPic('/templets/images/test.jpg|/templets/images/ad_1.gif|')"然后把值传给JS中的函数,给数组arrUrl赋值,随后可以在函数外使用数组arrUrl的值如果使用返回值,在函数外调用该函数CutPic(参数),里面参数怎么搞?参数是未知的
      

  10.   

    你可以不用函数传值啊!直接传进去!
    <div id="pic" value="/templets/images/test.jpg|/templets/images/ad_1.gif|/templets/images/ad_2.jpg|
    ">然后在JS中获取,不用传到函数里
    var allPicPath = document.getElementById("pic").value;然后你再将值划分给数组
      var arrUrl=new Array();
      var x=allPicPath.indexOf("|");
      var a=0;
      while(x!=-1)
      {
      arrUrl[a] = allPicPath.substring(0, allPicPath.indexOf("|"));
      allPicPath = allPicPath.replace(arrUrl[a] + "|", "");
      x=allPicPath.indexOf("|");
      a++;
      }
    这样不就没有函数内外的麻烦了嘛!