日期:2014-05-16  浏览次数:20329 次

各位仁兄来帮我看看这个问题怎么解决啊?
function   AlterNodeN(node,v)
{      
        var   index   =   node.getNodeIndex();
if(node.getAttribute( "firstchildtext ").indexOf(Form5.T1.value)   >   -1   &&   index   !=   v)
    {
        return   node;
      }  
var   nds   =   node.getChildren();
var   r;
for(var   i   =   0;   i   <   nds.length;   ++i)
{
r   =   AlterNodeN(nds[i],v);
if(r   !=   null)
return   r;
}
return   null;
}

      我想把上面递归查询的所有植放到一个数组里面,应该怎么半?或者让他返回一个值后,怎么样才能控制其继续往下执行,得到第二个值.

------解决方案--------------------
//定义全局数组
var DataArray = new Array();

function AlterNodeN(node,v)
{
var index = node.getNodeIndex();
if(node.getAttribute( "firstchildtext ").indexOf(Form5.T1.value) > -1 && index != v)
{
DataArray[DataArray.length] = node;
return node;
}
var nds = node.getChildren();
var r;
for(var i = 0; i < nds.length; ++i)
{
r = AlterNodeN(nds[i],v);
if (r) {
DataArray[DataArray.length] = node;
return r;
}
}
return null;
}