Я хочу добавить опцию в optgroup с помощью jQuery. Я использую bootstrap selectpicker. Вот мой код:
var groupOption = "<option value='123'>123</option>";
$("#selectpickerdemo").append(groupOption).selectpicker('refresh');
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class = "selectpicker" multiple name = "selectpickerdemo" id = "selectpickerdemo">
<optgroup label = "Label 1">
<option value='abc'>ABC</option>
<option value='abcd'>ABCD</option>
</optgroup>
<optgroup label = "Label 2">
<option value='abc'>ABC</option>
<option value='abcd'>ABCD</option>
</optgroup>
</select>
@RoryMcCrossan, я пробовал. Я дал идентификатор каждой группе optgroup и попытался добавить опцию, используя этот идентификатор, но это не сработало.






Пожалуйста, используйте атрибут id (или другие, например class и т. д.).
например
...
<optgroup label = "Label 1" id = "label1">
<option value='abc'>ABC</option>
<option value='abcd'>ABCD</option>
</optgroup>
...
var opt_label1 = $("#label1" );
$("<option>").text('option text').val('option value').appendTo(opt_label1);
Для получения дополнительных сведений см. Этот пример. http://jsfiddle.net/jonathansampson/493qa/
Хочу добавить под определенную группу optgroup. например, под ярлыком 1 или ярлыком 2
Используя атрибуты id или class, получите от него объект jQuery optgroup. И используйте метод appendTo, чтобы добавить option в объект jQuery.
Я пробовал, но бутстрап конвертирует optgroup и option в формат ul li
Я вижу, вы, наверное, используете шаблон начальной загрузки. Не могли бы вы сообщить мне свою версию начальной загрузки?
Bootstrap v3.3.6
Выберите <optgroup на основе id или label, как обычный селектор.
Соответствующий код:
$("#selectpickerdemo optgroup#label1").append(groupOption).selectpicker('refresh');
Если у вас есть ярлык и нет идентификатора, используйте его следующим образом:
$("#selectpickerdemo optgroup[label='Label 1']").append(groupOption).selectpicker('refresh');
Вот отрывок:
var groupOption = "<option value='123'>123</option>";
$("#selectpickerdemo optgroup#label1").append(groupOption).selectpicker('refresh');<link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.1/css/bootstrap-select.css">
<script src = "https://code.jquery.com/jquery-3.2.1.js"></script>
<script type = "text/javascript" src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.1/js/bootstrap-select.min.js"></script>
<select class = "selectpicker" multiple name = "selectpickerdemo" id = "selectpickerdemo">
<optgroup label = "Label 1" id = "label1">
<option value='abc'>ABC</option>
<option value='abcd'>ABCD</option>
</optgroup>
<optgroup label = "Label 2" id = "label2">
<option value='abc'>ABC</option>
<option value='abcd'>ABCD</option>
</optgroup>
</select>Надеюсь это поможет.
Вам просто нужно выбрать элемент
optgroupперед вызовомappend(), а неselect, как вы делаете сейчас.