Javascript 在json中搜索多维对象时,如何跟踪对象父对象?

Javascript 在json中搜索多维对象时,如何跟踪对象父对象?,javascript,json,Javascript,Json,下面是我实现搜索的功能。我的问题是我需要跟踪我必须通过哪些行来查找URL。我正在构建一个导航“小部件”,我需要它根据URL扩展到正确的位置。鉴于URL可能有N行深,我需要一个方法来跟踪它通过的行 例如:行[1]。树。行[3]。树。行[0],这样我知道要展开第二个元素的导航,然后是第四个元素,然后突出显示该列表中的第一个元素 问题在于rowNum=rowNum+“x”+x我传递回函数。我想我可能是过度劳累了,当我认为这会起作用时,我没有想清楚 建议 谢谢! 关于这个函数,我还有另外一个问题,但这个

下面是我实现搜索的功能。我的问题是我需要跟踪我必须通过哪些行来查找URL。我正在构建一个导航“小部件”,我需要它根据URL扩展到正确的位置。鉴于URL可能有N行深,我需要一个方法来跟踪它通过的行

例如:行[1]。树。行[3]。树。行[0],这样我知道要展开第二个元素的导航,然后是第四个元素,然后突出显示该列表中的第一个元素

问题在于rowNum=rowNum+“x”+x我传递回函数。我想我可能是过度劳累了,当我认为这会起作用时,我没有想清楚

建议

谢谢! 关于这个函数,我还有另外一个问题,但这个问题是不同的。提交一个附加问题是否不好

    function lmIntra_LeftNavBuilder_findURL(url)
{

    return lmIntra_LeftNavBuilder_searchJson(jsonLNav.tree[0],url,null);
}//end findURL

function lmIntra_LeftNavBuilder_searchJson(tree,url,rowNum)
{
    if(rowNum == null)
    {
        rowNum="";
    }
    for(var x=0; x<=tree.rows.length-1;x++)
    {

    var cururl = "";
        if(typeof tree.rows[x] ==="undefined")
        {
            cururl="";
        }else
        {
            var cururl = tree.rows[x].url;
        }
        if(url == cururl )
        {
            //return tree.rows[x].title;
            return  rowNum + " treeDepth:"+tree.pos;
        }//end if
        else
            {

                if(typeof tree.rows[x]!= "undefined")
                {
                    if(typeof tree.rows[x].tree.rows != "undefined")
                    {
                    rowNum = rowNum+"x"+x;
                        var t = lmIntra_LeftNavBuilder_searchJson( tree.rows[x].tree,url,rowNum);
                        if (t) return t;
                    }//end if
                }//end if typeof tree.rows[x].tree!= "undefined"
            }//end else 

    }//end for


}//end searchJson

大概这个树中存在的所有东西都映射到DOM中存在的东西,对吗?我认为最明智的选择是停止遍历该对象以找到所需内容,使用类似jQuery的库以及选择器引擎来选择所需节点,然后使用所述库遍历并备份DOM。即使在没有库的情况下遍历DOM对您来说也可能更容易。

如果您真的想坚持现有的方法,我认为这并不遥远。如果我了解你想要什么,最大的问题是你需要做如下事情:

    if(url == cururl )
    {
        rowNum = rowNum+"x"+x;
        return  rowNum + " treeDepth:"+tree.pos;
    }

。每个对象都会映射到DOM中的某个对象,但它尚未创建。此函数是构建DOM的更大函数的一部分。不幸的是,我不能穿过那条路。我需要的是一种在JSON对象中获取父对象的方法。另外,由于在我加入公司之前做了一个设计选择,我不能使用Jquery。它不能很好地与其他一些代码配合使用,因此不在本项目中使用:(.现在,不管怎样,我稍后会尝试修复它,但这可能是一个大项目。它如何跟踪其备份过程中的每一行号?我承认我对递归的理解非常薄弱。我现在也在家,无法访问源代码来尝试此操作。它不在备份过程中…它会在备份过程中跟踪它们,然后再重试我对你给出的示例树做了一个小扩展,它将行号作为字符串的一部分返回。你可能还可以传递一个数组而不是字符串作为rowNum变量,并在传递过程中向其推送新值。
    if(url == cururl )
    {
        rowNum = rowNum+"x"+x;
        return  rowNum + " treeDepth:"+tree.pos;
    }