#javascript #jquery #html-select
#javascript #jquery #html-выберите
Вопрос:
У меня есть html select,
<select id="myselect">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
Мне нужно добавить новую опцию в этот выбор.
Если я попробую вот так:
$('#myselect').appendTo($('<option>my-option</option>'));
my-option добавлены в конец
<select id="myselect">
<option>1</option>
<option>2</option>
<option>3</option>
<option>my-option</option>
</select>
Как я могу добавить опцию в начале (как first)?
Вот так:
<select id="myselect">
<option>my-option</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
Ответ №1:
Во-первых, вы имеете в виду append
, а не appendTo
. append
добавляет содержимое параметра к выделению; appendTo
добавляет выделение к элементу, указанному в параметре.
Во-вторых, возможно, интуитивно, вы можете использовать prepend
:
$('#myselect').prepend($('<option>my-option</option>'));
Комментарии:
1. хехе, многие люди упускают из виду фактическое определение «добавить»
Ответ №2:
В POJS вы бы использовали insertBefore()
, например
var select = document.getElementById('mySelect');
var opt = new Option('', 'my-option');
select.insertBefore(opt, select.firstChild);
Комментарии:
1. Я использовал что-то очень похожее. Я изменил последнюю строку на: select.insertBefore(opt, select.options[0]); Преимущество в том, что таким образом вы можете вставить свою опцию в любом месте select, что мне и нужно было сделать.
2. ИМО, это предпочтительный вариант по сравнению с jQuery. Смотри также: i.stack.imgur.com/Bzawb.gif
Ответ №3:
Используйте prependTo()
$('#myselect').prependTo($('my-option'));//опечатка?
Возможно, вы имели в виду это
$('#myselect').prepend($('<option>my-option</option>'));
http://api.jquery.com/prependTo
http://api.jquery.com/prepend/
Но в вашем коде на самом деле все наоборот. Это может быть опечатка. В любом случае, доступными методами являются prepend()
и prependTo()