Удаление элемента из поля выбора - 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 ]

4 голосов
/ 05 июня 2015

JavaScript

function removeOptionsByValue(selectBox, value)
{
  for (var i = selectBox.length - 1; i >= 0; --i) {
    if (selectBox[i].value == value) {
      selectBox.remove(i);
    }
  }
}

function addOption(selectBox, text, value, selected)
{
  selectBox.add(new Option(text, value || '', false, selected || false));
}

var selectBox = document.getElementById('selectBox');

removeOptionsByValue(selectBox, 'option3');
addOption(selectBox, 'option5', 'option5', true);
<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>

JQuery

jQuery(function($) {
  $.fn.extend({
    remove_options: function(value) {
      return this.each(function() {
        $('> option', this)
          .filter(function() {
            return this.value == value;
          })
          .remove();
      });
    },
    add_option: function(text, value, selected) {
      return this.each(function() {
        $(this).append(new Option(text, value || '', false, selected || false));
      });
    }
  });
});

jQuery(function($) {
  $('#selectBox')
    .remove_options('option3')
    .add_option('option5', 'option5', true);
});
<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>
2 голосов
/ 27 апреля 2014

Мне пришлось удалить первый вариант из выбора, без идентификатора, только для класса, поэтому я успешно использовал этот код:

$('select.validation').find('option:first').remove();
0 голосов
/ 16 марта 2017

это поле выбора HTML

<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 option[value='option1']").remove();
$("#selectBox").append('<option value="option1">Option</option>');

иногда нам нужно скрывать и показывать опции из поля выбора, но не удалять, тогда вы можете использовать этот код

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

иногда нужно удалить выбранную опцию из поля выбора, затем

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

когда вам нужно удалить все опции, тогда этот код

('#selectBox').empty();

когда необходимо указать первый или последний код, затем этот код

$('#selectBox').find('option:first').remove();
$('#selectBox').find('option:last').remove();
0 голосов
/ 14 сентября 2015

Если кому-то нужно удалить опции ALL внутри выбора, я выполнил небольшую функцию.

Надеюсь, вы найдете это полезным

var removeAllOptionsSelect = function(element_class_or_id){
    var element = $(element_class_or_id+" option");
    $.each(element,function(i,v){
        value = v.value;
        $(element_class_or_id+" option[value="+value+"]").remove(); 
    })
}

Нужно только бежать

removeAllOptionsSelect("#contenedor_modelos");
0 голосов
/ 29 октября 2014

Я просто хочу предложить другой способ добавить option. Вместо установки value и text в качестве строки можно также сделать:

var option = $('<option/>')
                  .val('option5')
                  .text('option5');

$('#selectBox').append(option);

Это менее подверженное ошибкам решение при динамическом добавлении значений параметров и текстов.

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