#jquery #html #append
#jquery #HTML #добавить
Вопрос:
Есть ли способ вместо того, чтобы делать что-то подобное:
for (item in list){
$("#myList").append("<option>" list[item] "</option>");
}
Чтобы вместо этого сделать что-то вроде:
for (item in list){
var option = new option(list[item]);
$("#myList").add(option);
}
myList
это выпадающий список в html. Я знаю, что для этого примера это не имеет большого значения, я просто думаю, становится ли добавляемая вещь ( <option>
) более сложной.
Спасибо
Ответ №1:
Используйте Option
и select.add
(собственные функции):
var select = $("#myList")[0];
for(var item in list){
var option = new Option(list[item]);
select.add(option);
}
Комментарии:
1. Можете ли вы указать мне на какую-нибудь документацию, где я могу прочитать о
Option
?2. @TylerDeWitt Смотрите: новая опция() .
Ответ №2:
Обычно я делаю что-то вроде этого:
var $opt;
for (item in list) {
$opt = $('<option/>').text(list[item]).appendTo('#myList');
}
Это понятный, похожий на ООП способ выполнения действий, подобный jQuery, с дополнительным преимуществом создания переменной, хранящей новый HTML-элемент как объект jQuery, для дальнейших манипуляций.
Комментарии:
1. В качестве дополнения для этого вы действительно можете сделать $(‘<option>’, {текст: «некоторый текст», «класс»: «некоторый класс»})
2. Спасибо за эту идею. Мне немного больше нравится синтаксис другого ответа, но я обязательно сохраню это в toolbox