#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь построить дерево элементов LI / UL из внутреннего объекта, который у меня есть в javascript. Создание элементов верхнего уровня работает нормально, но затем рекурсивное построение дочерних элементов, похоже, вызывает у меня проблемы.
в приведенном ниже коде #DynaTree
находится UL
элемент, который является корнем моего дерева. tv
это мой объект, который представляет дерево — на самом деле я заменил дочерний код создания чем-то более простым, просто чтобы заставить его работать. Вы также можете увидеть закомментированную строку, где я попробовал другой подход. В любом случае я не получаю ошибок, но я никогда не вижу дочерних элементов, добавленных к первому уровню объектов.
for(i = 0; i < tv.getSize();i ){
var t = tv.getTaskAt(i);
var newul = $("<ul>" t.TaskName "(" t.GUID ")</ul>");
makeChildren(newul);
$("#DynaTree").append(newul);
}
function makeChildren(el){
var randomnumber=Math.floor(Math.random()*11);
console.log("Making Children Elements " randomnumber);
for(var i = 0; i < randomnumber;i ){
var newElement = $("<ul>New Element</ul");
/************************
Neither one of these methods works!
***********************/
//$("#DynaTree", el).append(newElement);
el.append(newElement);
}
}
`
Такое чувство, что я упускаю что-то очевидное. Любая помощь очень ценится.
-ace
Комментарии:
1.
ul
Не закрыт в makeChildren, может быть, в этом проблема?2. Теперь я чувствую себя очень глупо. Спасибо, что указали на это
3. @Andrew прав, вам не хватает закрывающей скобки в вашем
</ul>
теге, создающем дочерний элемент. Это приводит к созданию<ul>
узла без содержимого. Кстати, опубликованный вами код не содержит в себе рекурсии . Рекурсия включает в себя функцию, которая вызывает саму себя.
Ответ №1:
Спасибо Эндрю, указавшему, что ссылка UL не была закрыта
Ответ №2:
Вам не хватает закрытия >
в конце создания нового элемента, следует прочитать…
`var newElement = $("<ul>New Element</ul>");`
Ответ №3:
Если я правильно понимаю, вы пытаетесь создать эти ul / li во время выполнения. Вы можете использовать плагин шаблона jquery для того же самого. Больше информации на http://api.jquery.com/jQuery.template /