선택 상자에서 항목 제거


269

선택 상자에서 항목을 제거하거나 선택 상자에 어떻게 추가합니까? 작업을 쉽게하기 위해 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>

답변:


491

옵션을 제거하십시오.

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


7
옵션을 제거하고 다른 옵션을 선택해야 할 경우 : $ ( '# selectBox'). val ( 'option2'). find ( 'option [value = "option1"]'). remove ();
Radu Maris

8
솔직히, 선택 상자와 자바 스크립트를 통해 선택 상자를 조작하는 방법은 선택기와 DOM에 대해 잘 이해하고 있더라도 가장 혼란스러운 것 중 하나라고 생각합니다.
Tacroy

79

다음을 사용하여 선택한 항목을 삭제할 수 있습니다.

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

드롭 다운이 아닌 목록이있는 경우 유용합니다.


그것은 나를 위해 모든 것을 제거하고 있습니다 ... 잠시 동안 여러 속성으로 Select를 사용하고 있습니다. 여러 선택에서 어떻게 제거 할 수 있습니까?
Akshay

27
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는 아닙니다.


4
@JBeckton : 4 년 전이 글을 되돌아 보면 내가 웃으면 서 당신이 옳습니다 :)
Adriana

25

항목을 제거하려면

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

항목을 추가하려면

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

옵션을 확인하려면

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

선택한 옵션을 제거하려면

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

20

이것은해야합니다 :

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

18

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(/./);.


5
이것은 jQuery와 기본 프로그래밍을 사용하여 플러그인없이 수행 할 수 있기 때문에 -1입니다.
Slopeside Creative

ᕀ 한 이유는 바퀴 재발견
존 Hascall

9

하드 코드없이 동적으로 값 추가 / 제거 :

// select에서 동적으로 값을 제거

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

// 선택할 동적 값 추가

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



5

찾고있는 사람을 위해이 기능을 보강하기 위해 다음을 수행 할 수도 있습니다.

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

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

브라우저에 따라 다릅니다. 특정 옵션 만 비활성화 할 수 있습니다.
Adam Ware

이 방법은 브라우저마다 다르므로 권장하지 않습니다.
Scott Shaw-Smith

이것은 오래된 게시물이지만 이것에 대해 의견을 말하고 싶습니다. 이것은 선택 옵션을 다루는 아주 좋은 방법이지만 IE가 지원하지 않기 때문에 권장하지 않습니다.
Ahmed Ali

4

자바 스크립트

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

ID가없고 클래스 만있는 선택에서 첫 번째 옵션을 제거해야했기 때문에이 코드를 성공적으로 사용했습니다.

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

0

추가하는 다른 방법을 제안하고 싶습니다 option. valueand text를 문자열로 설정하는 대신 다음을 수행 할 수도 있습니다.

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

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

옵션의 값과 텍스트를 동적으로 추가 할 때 오류가 발생하기 쉬운 솔루션입니다.


나는 downvoter가 아니지만 옵션을 추가하는 방법에 대해서는 OP를 절반으로 대답했지만 옵션을 제거하는 방법은 아닙니다.
John Odom

0

누군가 선택 내의 모든 옵션을 삭제 해야하는 경우 저 작은 기능을 수행했습니다.

도움이 되셨기를 바랍니다.

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

2
결과가 같지 $('#contenedor_modelos').empty();않습니까? 그래도 몇 가지 행동을 만나서 반갑습니다 :)
MineSweeper

0

이것은 선택 상자 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();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.