如何从选择框中删除项目或向其中添加项目?我正在运行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>
答案 0 :(得分:483)
删除选项:
$("#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>
答案 1 :(得分:77)
您可以使用以下选项删除所选项目:
$("#selectBox option:selected").remove();
如果你有一个列表而不是下拉列表,这很有用。
答案 2 :(得分: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。
答案 3 :(得分:23)
删除项目
$("select#mySelect option[value='option1']").remove();
添加项目
$("#mySelect").append('<option value="option1">Option</option>');
检查选项
$('#yourSelect option[value=yourValue]').length > 0;
删除所选选项
$('#mySelect :selected').remove();
答案 4 :(得分:20)
这应该这样做:
$('#selectBox').empty();
答案 5 :(得分:18)
我发现jQuery select box manipulation plugin对这类事情很有用。
您可以按索引,值或正则表达式轻松删除项目。
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(/./);
。
答案 6 :(得分:9)
在没有硬编码的情况下动态添加/删除值:
//从动态选择中删除值
$("#id-select option[value='" + dynamicVal + "']").remove();
//添加动态值以选择
$("#id-select").append('<option value="' + dynamicVal + '">' + dynamicVal + '</option>');
答案 7 :(得分:8)
我发现两个看起来很有帮助的页面,它是为ASP.Net编写的,但应该适用相同的东西:
答案 8 :(得分:5)
答案 9 :(得分:5)
只是为了寻找任何人来增加这一点,你也可以:
$("#selectBox option[value='option1']").hide();
和
$("#selectBox option[value='option1']").show();
答案 10 :(得分: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);
&#13;
<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>
&#13;
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);
});
&#13;
<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>
&#13;
答案 11 :(得分:2)
我必须从select中删除第一个选项,没有ID,只有一个类,所以我成功使用了这个代码:
$('select.validation').find('option:first').remove();
答案 12 :(得分:0)
我只想提出另一种方法来添加option
。
您可以执行以下操作,而不是将value
和text
设置为字符串:
var option = $('<option/>')
.val('option5')
.text('option5');
$('#selectBox').append(option);
在添加选项时,这是一种不易出错的解决方案。动态的价值观和文本。
答案 13 :(得分:0)
如果某人需要在选择内删除所有选项,我会做一个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");
答案 14 :(得分: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();