Моя функция для осуществления поиска ниже. У меня проблема в том, что мне нужно отследить, через какие строки мне нужно пройти, чтобы найти URL. Я создаю навигационный «виджет», и мне нужно, чтобы он расширился до нужного места на основе URL. Поскольку URL может быть N строк глубиной, мне нужен метод для отслеживания строк, через которые он прошел.
EG: row [1] .tree.row [3] .tree.row [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
Вот более простой объект json. Он полностью сформирован, у него просто нет глубины. Полный текст содержит 38 тыс. Символов, поэтому я его опущу.
var jsonLNav = {itemClassName:"NodeLink",linkClassName:"NodeLinkTitle",linkHideClassName:"HideFromProd",navCategoryClassName:"NavCategory",onLoadJS:"",tree:[{pos:1,wid:"263a97c2-7cb9-470c-bf86-cadc28ae1323",pid:"1",rows:[{hide:0,title:"More IT Help",isNC:0,isMig:0,url:"http://vm-hsspdv-d09p/en-us/Help/Pages/ITHelp.aspx",isOL:0,tree:{pos:2,wid:"263a97c2-7cb9-470c-bf86-cadc28ae1323",pid:"3"}},{hide:0,title:"Office 2010",isNC:0,isMig:1,url:"http://office2010.lmig.com/Pages/Default.aspx",isOL:0,tree:{pos:2,wid:"263a97c2-7cb9-470c-bf86-cadc28ae1323",pid:"9"}},{hide:0,title:"E-mail Management",isNC:0,isMig:0,url:"http://vm-hsspdv-d09p/en-us/Help/EmailManagement/Pages/default.aspx",isOL:0,tree:{pos:2,wid:"8be66348-8da1-4e5c-90c5-0930d2f52d1a",pid:"123"}},]}]};