我这个递归哪里出错了?

zll_lover 2008-11-06 02:19:53
<TABLE style="MARGIN-LEFT: 15px">
<TBODY id="aa">
<TR>
<TD><INPUT onclick=dobb(this.parentNode.parentNode.parentNode) type=checkbox>ee</INPUT></TD></TR>
<TR>
<TD>
<TABLE style="MARGIN-LEFT: 15px">
<TBODY>
<TR id=cc>
<TD id=dd><INPUT type=checkbox aa</INPUT></TD>
<TD id=dd><INPUT type=checkbox bb</INPUT></TD>
<TD id=dd><INPUT type=checkbox cc</INPUT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
<script language="javascript">
function dobb(obj)
{
alert(obj.id)
selectNode(obj);

}


function selectNode(obj)
{
if(obj.type=="checkbox" )
{
obj.checked=true;
}

else if(obj.hasChildNodes())
{

for(j=0;j<obj.childNodes.length;j++)
{
selectNode(obj.childNodes[j]);

}

}
}
</script>
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
neo_yoho 2008-11-06
  • 打赏
  • 举报
回复
for(var j=0;j <obj.childNodes.length;j++)

递归中的变量最好私有化
wtcsy 2008-11-06
  • 打赏
  • 举报
回复
是这样的
你先遍历到的是上面的一个 tr 里面也有一个checkbox
当执行到{
if(obj.type=="checkbox" )
{ obj.checked=true; }
的时候 就不会执行下面的 else if了 到这个地方程序就运行结束了。下面的3个 checkbox就不会被选中了。
zll_lover 2008-11-06
  • 打赏
  • 举报
回复
请帮我看这个递归为什么错了好吗?谢谢了
IMAGSE 2008-11-06
  • 打赏
  • 举报
回复
顶楼上~
netwar 2008-11-06
  • 打赏
  • 举报
回复
你要的是全选的吧,
没有这么复杂

<script language="javascript" type="text/javascript">
var checkedAll=function(flag){
var obj=document.getElementsByName("items");
for(var i=0;i<obj.length;i++){
obj[i].checked=flag;
}
}
</script>

<input type="checkbox" onclick="checkedAll(this.checked)">全选

<input type="checkbox" name="items" value="0">items1
<input type="checkbox" name="items" value="1">items2
<input type="checkbox" name="items" value="2">items3


87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧