Как я могу динамически создать неупорядоченный список в JavaScript? - PullRequest
5 голосов
/ 06 октября 2011

У меня есть глобальный массив JavaScript, который содержит несколько строк.

Я хочу создать динамический список на основе строк в моем массиве JavaScript.Похоже на это:

<ul class='xbreadcrumbs' style='position:absolute; bottom:0px'>
    <li>
        <a href='#'>String 1</a>
    </li>
</ul>

Как я могу перебрать свой массив, а затем создать этот список в JavaScript / jQuery?

Ответы [ 4 ]

15 голосов
/ 06 октября 2011

Если вам нужен только плоский массив (т.е. не многомерный и без массивов в массиве), то вы можете сделать следующее в простом JavaScript:

var strs = [ "String 1", "String 2", "String 3" ];
var list = document.createElement("ul");
for (var i in strs) {
  var anchor = document.createElement("a");
  anchor.href = "#";
  anchor.innerText = strs[i];

  var elem = document.createElement("li");
  elem.appendChild(anchor);
  list.appendChild(elem);
}

Затем добавьте list к тому, чтородительский элемент в теле, которое вы желаете.

5 голосов
/ 06 октября 2011

Попробуйте это

var str = '<ul class='xbreadcrumbs' style='position:absolute; bottom:0px'>';

for(var i in $yourArray){
   str += '<li><a href="#">String 1</a></li>';
}

str += '</ul>';

$('body').append(str);
0 голосов
/ 06 октября 2011

Да, вы можете.Вы можете использовать DOM напрямую с помощью createElement (см. Ответ Джонатана) или пойти по очень простому маршруту с помощью jQuery (не тестировалось):

var ul = "<ul>";
for(var i=0; i < arr.length; i++) {
    ul += "<li><a href=\"#\">" + arr[i] + "</a></li>";
}
ul += "</ul>";

var ulElem = $(ul);
0 голосов
/ 06 октября 2011
var $bread = $('ul.xbreadcrumbs');
$.each(yourArray, function(index, value) {
  $('<li><a href="#">' + value + '</a></li>')
    .appendTo($bread);
});

Я не проверял это - просто с моей головы.Надеюсь, это поможет!

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