从选择框中删除项目

Tei*_*ion 263 html javascript jquery html-select

如何从选择框中删除项目或向其中添加项目?我正在运行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>
Run Code Online (Sandbox Code Playgroud)

dsi*_*ard 486

删除选项:

$("#selectBox option[value='option1']").remove();
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

添加选项:

$("#selectBox").append('<option value="option5">option5</option>');
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

  • 老实说,我认为通过javascript操作选择框的方式是有史以来最令人困惑的事情之一,即使你对选择器和DOM有相当好的理解. (8认同)
  • 如果你需要删除一个选项并选择另一个选项:$('#selectBox').val('option2').find('option [value ="option1"]').remove(); (7认同)

Eti*_*uis 77

您可以使用以下方法删除所选项目:

$("#selectBox option:selected").remove();
Run Code Online (Sandbox Code Playgroud)

如果您有列表而不是下拉列表,这将非常有用.


Adr*_*ana 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;    
}
Run Code Online (Sandbox Code Playgroud)

要添加项目,我将创建第二个选择框,并:

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

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

addSelect.onclick = add;
Run Code Online (Sandbox Code Playgroud)

虽然不是jQuery.

  • @JBeckton:回顾4年前的这篇文章,我嘲笑自己,你是对的:) (4认同)

Usm*_*kat 23

删除项目

$("select#mySelect option[value='option1']").remove(); 
Run Code Online (Sandbox Code Playgroud)

添加项目

$("#mySelect").append('<option value="option1">Option</option>');
Run Code Online (Sandbox Code Playgroud)

检查选项

$('#yourSelect option[value=yourValue]').length > 0;
Run Code Online (Sandbox Code Playgroud)

删除所选选项

$('#mySelect :selected').remove(); 
Run Code Online (Sandbox Code Playgroud)


小智 20

这应该这样做:

$('#selectBox').empty();
Run Code Online (Sandbox Code Playgroud)


Zor*_*che 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"]);
Run Code Online (Sandbox Code Playgroud)

要删除所有选项,您可以执行此操作$("#myselect").removeOption(/./);.

  • -1因为这可以使用jQuery和基本编程来完成w/oa插件. (5认同)

小智 9

在没有硬编码的情况下动态添加/删除值:

//动态地从select中删除值

$("#id-select option[value='" + dynamicVal + "']").remove();
Run Code Online (Sandbox Code Playgroud)

//添加动态值以进行选择

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


Zac*_*tes 8

我发现两个看起来很有用的页面,它是为ASP.Net编写的,但同样的东西应该适用:

  1. 如何使用jQuery从下拉列表中添加/删除项目
  2. jQuery选择器表达式


AA1*_*Kas 5

只是为了寻找任何人来增加这个,你也可以:

$("#selectBox option[value='option1']").hide();
Run Code Online (Sandbox Code Playgroud)

$("#selectBox option[value='option1']").show();
Run Code Online (Sandbox Code Playgroud)