繁体   English   中英

从选择框中删除项目

[英]Removing an item from a select box

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

删除选项:

 $("#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 option:selected").remove();

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

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。

删除项目

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

添加项目

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

检查选项

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

删除所选选项

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

这应该这样做:

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

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

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

//动态地从select中删除值

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

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

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

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

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

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

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

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

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> 

我不得不从select中删除第一个选项,没有ID,只有一个类,所以我成功使用了这个代码:

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

我只是想建议另一种方法来添加一个option 您可以执行以下操作,而不是将valuetext设置为字符串:

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

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

在动态添加选项的值和文本时,这是一种不易出错的解决方案。

如果有人需要在select中删除所有选项,我会做一个litle函数。

希望对你有帮助

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

这是选择框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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM