搞不明白的怪异脚本问题?
递归选中某页面的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这句话引起的
注意包含