Удаление элемента из поля выбора - PullRequest
259 голосов
/ 17 декабря 2008

Как удалить или добавить элементы в поле выбора? Я использую jQuery, если это облегчит задачу. Ниже приведен пример окна выбора.

<select name="selectBox" id="selectBox">
    <option value="option1">option1</option>
    <option value="option2">option2</option>
    <option value="option3">option3</option>
    <option value="option4">option4</option>    
</select>

Ответы [ 15 ]

483 голосов
/ 17 декабря 2008

Удалить опцию:

$("#selectBox option[value='option1']").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="selectBox" id="selectBox">
  <option value="option1">option1</option>
  <option value="option2">option2</option>
  <option value="option3">option3</option>
  <option value="option4">option4</option>	
</select>

Добавить опцию:

$("#selectBox").append('<option value="option5">option5</option>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="selectBox" id="selectBox">
  <option value="option1">option1</option>
  <option value="option2">option2</option>
  <option value="option3">option3</option>
  <option value="option4">option4</option>	
</select>
77 голосов
/ 15 апреля 2011

Вы можете удалить выбранный элемент следующим образом:

$("#selectBox option:selected").remove();

Это полезно, если у вас есть список, а не раскрывающийся список.

27 голосов
/ 18 декабря 2008
window.onload = function ()
{   
    var select = document.getElementById('selectBox');
    var delButton = document.getElementById('delete');

    function remove()
    {
        value = select.selectedIndex;
        select.removeChild(select[value]);
    }

    delButton.onclick = remove;    
}

Чтобы добавить элемент, я бы создал второе поле выбора и:

var select2 = document.getElementById('selectBox2');
var addSelect = document.getElementById('addSelect');

function add()
{
    value1 = select2.selectedIndex;
    select.appendChild(select2[value1]);    
}

addSelect.onclick = add;

Не jQuery, хотя.

23 голосов
/ 29 января 2012

Чтобы удалить предмет

$("select#mySelect option[value='option1']").remove(); 

Добавить товар

$("#mySelect").append('<option value="option1">Option</option>');

Для проверки опции

$('#yourSelect option[value=yourValue]').length > 0;

Для удаления выбранной опции

$('#mySelect :selected').remove(); 
20 голосов
/ 19 января 2012

Это должно сделать это:

$('#selectBox').empty();
18 голосов
/ 17 декабря 2008

Я нахожу jQuery плагин манипулятора выбора блока полезным для этого типа вещей.

Вы можете легко удалить элемент по индексу, значению или регулярному выражению.

removeOption(index/value/regex/array[, selectedOnly])

Remove an option by
- index: $("#myselect2").removeOption(0);
- value: $("#myselect").removeOption("Value");
- regular expression: $("#myselect").removeOption(/^val/i);
- array $("#myselect").removeOption(["myselect_1", "myselect_2"]);

Чтобы удалить все опции, вы можете сделать $("#myselect").removeOption(/./);.

9 голосов
/ 06 марта 2014

Динамическое добавление / удаление значения без жесткого кода:

// удалить значение из выбора динамически

$("#id-select option[value='" + dynamicVal + "']").remove();

// Добавить динамическое значение для выбора

$("#id-select").append('<option value="' + dynamicVal + '">' + dynamicVal + '</option>');
8 голосов
/ 17 декабря 2008

Я нашел две страницы, которые кажутся полезными, они написаны для ASP.Net, но должны применяться те же вещи:

  1. Как добавить / удалить элементы из выпадающего списка с помощью jQuery
  2. Выражения селектора jQuery
5 голосов
/ 17 июля 2012

Просто чтобы увеличить это для всех, кто ищет, вы также можете просто:

$("#selectBox option[value='option1']").hide();

и

$("#selectBox option[value='option1']").show();
5 голосов
/ 21 марта 2012

Следующие ссылки будут полезны-

http://api.jquery.com/remove/

http://api.jquery.com/append/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...