我的一个产品搜索页需要将当前页面的地址取下来,然后拆分,再加入条件再组合。现在碰到一个问题就是当我取下地址后如果地址的参数里是不包含,的符号时用了split(',')会报错,如:
<script type="text/javascript">
var theurl = "http://www.csdn.net?prov=6&act=1"
urls = theurl.split("?");
arrurl = urls[1].split('&');
for(i=0;i<arrurl.lenght;i++)
{
   if(arrurl[i].indexOf('prov')>=0) //当参数不存在时会报错
   {
     //因为我的prov参数有可能是6,1这样的形式
      opr = arrurl[i].split(',');  //当参数里没有,时会报错
   }
}
</script>请问一下上面的报错我如何处理,就是split()和indexOf都不存在时为什么不通过会出错?splitindexOf

解决方案 »

  1.   

    在这一句前面加上一个判断,确定arrurl[i]里面是否包含有既定参数,用Contains就可以了。
      

  2.   

    我的一个产品搜索页需要将当前页面的地址取下来,然后拆分,再加入条件再组合。现在碰到一个问题就是当我取下地址后如果地址的参数里是不包含,的符号时用了split(',')会报错,如:
    <script type="text/javascript">
    var theurl = "http://www.csdn.net?prov=6&act=1"
    urls = theurl.split("?");
    arrurl = urls[1].split('&');
    for(i=0;i<arrurl.lenght;i++)//length写错了 arrurl.length
    {
       if(arrurl[i].indexOf('prov')>=0) //当参数不存在时会报错
       {
         //因为我的prov参数有可能是6,1这样的形式
          opr = arrurl[i].split(',');  //当参数里没有,时会报错
       }
    }
    </script>
      

  3.   

    当参数没有时比如str=6;
    当arrst = str.split(',');
    这个不会报错
    并且arrst[0]能=6
      

  4.   

    没有问题啊,应该是其它地方出问题了吧,倒是发现有个地方写错了。
    for(i=0;i<arrurl.lenght;i++)length