javascript中var引起的问题

今天写一个递归程序求一棵树节点的所有子节点,方法是这样的
function getAllChildNodes() {
node = tree.getSelected();
var aryNodeId = new Array();
[b]getChildNodesByCurrentNode(node,aryNodeId);[/b]
alert(aryNodeId.toString());
}
function getChildNodesByCurrentNode(node,aryNodeId) {
try {
[b]for(i=0;i<node.childNodes.length;i++) [/b]{
var cnode = node.childNodes[i];
aryNodeId.push(cnode.text);
if(cnode.childNodes.length>0) {
getChildNodesByCurrentNode(cnode,aryNodeId);
}
}

}catch(e) {
alert(e);
}
}


其中我的递归函数getChildNodesByCurrentNode无论如何不能获得我想要的结果,只是取得了一个枝节点的所有数据,让我很是郁闷,后来把程序并给了同事让他帮我检查一下,发现了问题的所有,就是var的定义,即for循环中我少了var i=0.........
正确的方法是

function getChildNodesByCurrentNode(node,aryNodeId) {
try {
[b]for(var i=0;i<node.childNodes.length;i++) [/b]{
var cnode = node.childNodes[i];
aryNodeId.push(cnode.text);
if(cnode.childNodes.length>0) {
getChildNodesByCurrentNode(cnode,aryNodeId);
}
}

}catch(e) {
alert(e);
}
}

大功告成,唉,真是活到老学到老,遇上了才发现原来一个小小的var原来作用大大呀,呵呵
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值