Добавьте стиль ООП html-элементов с помощью jQuery

#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