Как получить обходной путь в дереве, как загрузка структуры из XML в Javascript - PullRequest
1 голос
/ 18 января 2012

У меня есть древовидная структура, как показано ниже.

enter image description here

, когда я путешествую от родителя к ребенку, я хочу полный путь, как: Химия-> Физическая химия-> Теория частиц-> Теория частиц при нажатии на конкретный узел.и когда мы вернемся назад или щелкнем Физическая химия, путь вернется так: Химия-> Физическая химия

как мы можем это сделать.Я использую следующую функцию.

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 Ответ

4 голосов
/ 18 января 2012

Это основной пример для рекурсивной функции.

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...