日期:2014-05-20  浏览次数:20449 次

搞不明白的怪异脚本问题?
递归选中某页面的checkbox函数
脚本如下:为什么只能递归到第一个分支?
比如:
1选项一
2     选项一一
3         选项一一一
4         选项一一二
5         选项一一三
6     选项一二
7         选项一二一
8         选项一二二
9     选项一三

为什么下面的脚本只能将1到5的选项选上??

函数说明:
obj为某父节点。
act指checkbox的name中需包含的字符串
parent和haschild为checkbox中自定义的属性
function   selectchild(obj,act)
{
      var   all=document.getElementsByTagName( "input ");
      for(i=0;   i <all.length;   i++)
      {
          if(all[i].type== "checkbox ")
        {
            if(all[i].name.indexOf(act)!=-1)
            {
                if(all[i].parent==obj.value)
                {
  if(!all[i].disabled)
  {
                        if(obj.checked)
                        {
                            all[i].checked=true;
      }
      else
      {
                            all[i].checked=false;
      }
      if(all[i].haschild== "true ")
      {
            target=obj.id;
            alert(target);
            selectchild(all[i],act);
            obj=document.getElementById(target);
            alert(target);
                          }
                      }
                  }
              }
          }
      }
}

猜测可能是引用传递的问题,可是不知道怎么解决。

------解决方案--------------------
很可能是all[i].name.indexOf(act)!=-1这句话引起的
注意包含