2012-01-18 69 views
1

我有一個如下所示的樹結構。如何在JavaScript中從XML中加載樹中的遍歷路徑

enter image description here

當我通過父母和孩子之間travese我要像完整路徑: Chemistry->物理chemistry->上點擊特定節點粒子理論 - >粒子理論。 當我們回去或點擊物理化學時,路徑將返回如下: 化學 - >物理化學

我們該怎麼做。 我正在使用以下功能。

function getParents(id) 
{ 
    var parents = $("#" + id).parents("ul"); 
    var selector = ""; 
    for (var i = parents.length-1; i >= 0; i--) { 
    //alert($(parents[i]).find('li').find('span').find('a').html()); 
    selector += $(parents[i]).find('li').parent().find('span').find('a').html() + " > "; 
    } 

    //selector += "#" + id; 
    $('#breadcrumbs').html(selector); 
    //return selector; 
} 

但它走向了錯誤的方向。

+1

什麼是你的代碼正在使用?另外,你有什麼嘗試? – Dogbert 2012-01-18 07:12:17

+0

我已經更新了代碼。 – 2012-01-18 07:46:59

回答

4

這是一個遞歸函數的主要例子。

function getBreadcrumbs(a) { 
    var path = $(a).text(), 
     $parent = $(a).parents("li").eq(1).find("a:first"); 

    if ($parent.length == 1) { 
     path = getBreadcrumbs($parent) + " > " + path; 
    } 
    return path; 
} 

$("ul a").click(function() { 
    $("#breadcrumbs").text(getBreadcrumbs(this)); 
}); 

看看它的工作在這裏:http://jsfiddle.net/Tomalak/GFfyg/

+0

今天幫助我,謝謝! – 2016-12-06 13:01:31