проблема в добавлении якоря в список динамически с помощью JavaScript - PullRequest
0 голосов
/ 18 июня 2011

создаю неупорядоченный список с использованием javascript динамически из объекта JSON.

function renderList(branches) {  
    var ul = document.createElement("ul");
    for (var i=0, n=branches.length; i<n; i++) {
        var branch = branches[i];
        var li = document.createElement("li");
                var text = document.createTextNode(branch.name);
                li.appendChild(text);
        if (branch.branches) {
           li.appendChild(renderList(branch.branches));
        }
        ul.appendChild(li);
    }      
    return ul; 
}

function renderTree()
    {
    var treeRoot = document.getElementById("tree");
    var treeObj = {"root":
            [{
                   "name": "File",
                   "branches":[
                 {"name": "New"},
                             {"name": "Save"},
                             {"name": "Exit"}
                               ]  
                }]
          };
    treeRoot.appendChild(renderList(treeObj.root));
}

Какие изменения необходимы в json & javascript для динамического добавления привязки в список?

динамически от <li> File </li> до <li> <a href="yahoo.com"> File </a> <li>

1 Ответ

2 голосов
/ 18 июня 2011

Замените text в строке li.appendChild(text); на узел привязки:

function renderList(branches) {  
    var ul = document.createElement("ul");
    for (var i=0, n=branches.length; i<n; i++) {
        var branch = branches[i];
        var li = document.createElement("li");
        var text = document.createTextNode(branch.name);

        // new code here
        var a = document.createElement("a");
        a.setAttribute('href', 'http://yahoo.com')
        a.appendChild( text );
        //

        li.appendChild( a );
        ...

Где хранятся ваши URL-адреса?(Вы можете обновить приведенный выше код, чтобы заменить жестко запрограммированный URL-адрес фактическим значением, если оно где-то хранится.)

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