Как построить динамическое меню с помощью JQuery?

0

Я пытаюсь создать динамическое меню с помощью jquery:

  function createMenu(array) {
            var main = $("#mainUl");
            for (var i = 0; i < array.length; i++) {          
                main.append("<li>");
                $('li').append("<a href='#" + myArray[i].id + "'><span>" + myArray[i].id + "</span></a>");
                main.append("</li>");
            }    
        }

Меню создано, но в каждом ли я получаю более одного диапазона, есть цикл "внутри" (я думаю...), создающий больше промежутков, чем нужно... как я могу решить/контролировать его, чтобы каждый лич получил один span в соответствии с индексом for-loop?

3 ответа

0
Лучший ответ

вы можете сделать это просто как ниже

  function createMenu(array) {
                var main = $("#mainUl");
                for (var i = 0; i < array.length; i++) {          
                    main.append($("<li>").append("<a href='#" + myArray[i].id + "'><span>" + myArray[i].id + "</span></a>"));
                }    
            }
1

Вы видите это поведение, потому что добавляете этот anchor с span при выборе всех элементов li.

Пытаться,

function createMenu(array) {
    var main = $("#mainUl");
    for (var i = 0; i < array.length; i++) {          
      var xLi =("<li>").appendTo(main);
      xLi.append("<a href='#" + myArray[i].id + "'><span>" + myArray[i].id + "</span></a>");
      main.append(xLi);
    }    
}
0

$ ('li') этот селектор получит каждый li на html, поэтому каждый раз, когда вы итерации создаете новый элемент li, вы добавите новый диапазон для всех.

Попробуйте вот так:

function createMenu(array) {
        var main = $("#mainUl");
        for (var i = 0; i < array.length; i++) { 
            var menuLine = $('<li>');
            menuLine.html("<a href='#" + myArray[i].id + "'><span>" + myArray[i].id + " </span></a>" );                                
            main.append(menuLine);
        }    
    }
  • 2
    menuline ли вы удалить эту цитату из переменной menuline ?
  • 0
    удалено, спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню