#javascript #jquery #html #dom
#javascript #jquery #HTML #dom
Вопрос:
Я потратил некоторое время, пытаясь найти элегантное и кроссбраузерное решение, но не смог. Я пытаюсь динамически создавать выпадающий список. Вот мой html:
...
<span id="currencies">
</span>
...
В моем скрипте я пытаюсь сделать следующее:
- Создайте элемент выбора
- Поместите в него, скажем, 4 параметра — ‘AAA’, ‘BBB’, ‘CCC’ и ‘DDD’
- Добавьте элемент select в $(‘#валюты’)
Я предполагаю, что для того, чтобы код был кроссбраузерным, он должен быть написан с использованием jQuery. Когда я говорю элегантный, я имею в виду, возможно, попытку избежать слишком большой разметки, например, что-то вроде этого:
// THIS IS NOT A WORKING CODE
$('#currencies').appendSelect().addOption('AAA', 'AAA').addOption('BBB', 'BBB')...
Может быть, у кого-нибудь есть какой-нибудь совет. Спасибо.
Ответ №1:
Я бы, вероятно, сделал это так:
var $s = $('<select/>').appendTo($('#currencies'));
$.each(['AAA','BBB','CCC','DDD'],function(i,text){
$s.append($('<option/>',{value:text,html:text}));
});
Комментарии:
1. Энди, спасибо, я думаю, что это очень хороший код. Только один вопрос, почему вы поставили знак доллара перед именем переменной, это похоже на соглашение jQuery или что-то в этом роде?
2. @SBel я бы сказал, что это квази-соглашение. Это помогает быстро отличить jquery от обычных переменных.
Ответ №2:
Вы должны создать строку
var string1='<option>AAA</option><option>BBB</option>.........</option>'
Затем
$('#currencies').html(string1);
сделает работу за вас