Заполнить выпадающий список с помощью массива с помощью jQuery

Я пытаюсь заполнить выпадающий список массивом, используя jQuery.

Вот мой код:

        // Add the list of numbers to the drop down here
        var numbers[] = { 1, 2, 3, 4, 5};
        $.each(numbers, function(val, text) {
            $('#items').append(
                $('<option></option>').val(val).html(text)
            );            
        // END

Но я получаю ошибку. Каждая функция - это то, что я получил с этого сайта.

Это бомбардировка, потому что я использую одномерный массив? Я хочу, чтобы и опция, и текст были одинаковыми.

48
задан Tim Cooper 24 September 2011 в 14:52
поделиться

2 ответа

Попробуйте для циклов:

var numbers = [1, 2, 3, 4, 5];

for (var i=0;i<numbers.length;i++){
   $('<option/>').val(numbers[i]).html(numbers[i]).appendTo('#items');
}

Гораздо лучший подход:

var numbers = [1, 2, 3, 4, 5];
var option = '';
for (var i=0;i<numbers.length;i++){
   option += '<option value="'+ numbers[i] + '">' + numbers[i] + '</option>';
}
$('#items').append(option);
92
ответ дан 7 November 2019 в 12:08
поделиться

Объявление массива имеет неправильный синтаксис. Вместо этого попробуйте следующее:

var numbers = [ 1, 2, 3, 4, 5]

Цикл кажется правильным

$.each(numbers, function(val, text) {
            $('#items').append( $('<option></option>').val(val).html(text) )
            }); // there was also a ) missing here

Как @Reigel, похоже, добавляет немного больше производительности (это не заметно на таких маленьких массивах)

39
ответ дан 7 November 2019 в 12:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: