Удаление элемента из поля выбора

Как удалить элементы или добавить элементы в поле выбора? Я использую 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>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
270
0
426 032
15
Перейти к ответу Данный вопрос помечен как решенный

Ответы 15

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

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

Удалить вариант:

$("#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>

Если вам нужно удалить один параметр и выбрать другой: $ ('# selectBox'). Val ('option2'). Find ('option [value = "option1"] ‌') .remove ();

Radu Maris 08.02.2012 13:35

Честно говоря, я считаю, что способ манипулирования полями выбора с помощью javascript - одна из самых запутанных вещей, даже если у вас есть достаточно хорошее понимание селекторов и DOM.

Tacroy 10.04.2012 04:07

Я считаю, что 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(/./);.

-1, потому что это можно сделать без плагина, используя jQuery и базовое программирование.

Slopeside Creative 07.09.2013 00:16

ᕀ 1 зачем изобретать велосипед

John Hascall 31.10.2016 17:29
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.

@JBeckton: оглядываясь на это написанное 4 года назад, я смеюсь над собой, и вы правы :)

Adriana 07.02.2013 15:49

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

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

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

Он удаляет все для меня ... Подождите, я использую Select с несколькими атрибутами. Как я могу удалить его из множественного выбора?

Akshay 01.11.2018 16:08

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

$('#selectBox').empty();

Чтобы удалить элемент

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

Чтобы добавить элемент

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

Чтобы проверить вариант

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

Чтобы удалить выбранный вариант

$('#mySelect :selected').remove(); 

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

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

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

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

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

а также

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

Я думаю, это зависит от браузера. Это может просто отключить эту конкретную опцию.

Adam Ware 30.09.2013 05:32

Я не рекомендую этот метод, так как он зависит от браузера.

Scott Shaw-Smith 23.06.2016 21:38

Это старый пост, но я хотел бы его прокомментировать. Хотя это очень хороший способ справиться с опцией выбора, он не рекомендуется, потому что IE не поддерживает его.

Ahmed Ali 18.10.2018 20:40

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

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

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

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

$("#id-select").append('<option value = "' + dynamicVal + '">' + dynamicVal + '</option>');

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

$('select.validation').find('option:first').remove();

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

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

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

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

Я не голосующий против, но похоже, что вы на полпути ответили OP о том, как добавить параметр, но не о том, как его удалить.

John Odom 07.05.2015 19:48

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>

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

Я надеюсь ты сочтёшь это полезным

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");

Разве результат не равен $('#contenedor_modelos').empty();? Приятно видеть какие-то действия :)

MineSweeper 18.01.2016 18:55

это поле выбора 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();

Другие вопросы по теме