Вопрос

у меня есть массив:

arr = ['a', 'b', 'c', ... ]

я хочу, чтобы это было:

 <div>
  <ul>
    <li>a
    <li>b
    <li>c
    ...
  </ul>
 </div>

так что я пытаюсь:

$('div').append('<ul>');
$.each(arr, function () {
    $('div').append('<li>' + this);
});
$('div').append('</ul>');

но, похоже, это не работает...как я могу поставить это в очередь?

Это было полезно?

Решение

возможно, вы хотите

$('div').append('<ul></ul>');
$.each(arr, function () {
    $('ul').append('<li>' + this);
});

Другие советы

Ну, часть проблемы заключается в том, что вы никогда не закрываете теги li, так что попробуйте

$('div').append('<li>' + this + '</li>');

Для начала...

Что-то еще, что вы можете попробовать, это то, что аргумент функции может иметь подпись

function(data, i)

Где data - это текущий элемент, а i - количество.Таким образом, вы могли бы добиться большего успеха при доступе к каждому элементу.Хотя, если мне не изменяет память, "это" должно сработать в этих случаях...

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

$('div').append('<ul/>);
$.each(arr, function () {
    $('div ul').append('<li>' + this + '</li>');
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top