javascript - limpiar - eliminar opciones de un select jquery
Eliminar un elemento de un cuadro de selección (15)
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>
¿Cómo elimino o agrego elementos a un cuadro de selección? Estoy ejecutando jQuery, si eso facilita la tarea. A continuación se muestra un cuadro de selección de ejemplo.
<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>
Agregando / Eliminando valor dinámicamente sin código duro:
// eliminar valor de seleccionar dinámicamente
$("#id-select option[value=''" + dynamicVal + "'']").remove();
// Añadir valor dinámico para seleccionar
$("#id-select").append(''<option value="'' + dynamicVal + ''">'' + dynamicVal + ''</option>'');
Eliminar una opción:
$("#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>
Añadir una opción:
$("#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>
Encontré dos páginas que parecen útiles, está escrito para ASP.Net, pero se debe aplicar lo mismo:
Esto debería hacerlo:
$(''#selectBox'').empty();
Los siguientes enlaces serán de utilidad.
Me parece que el complemento de manipulación de jQuery Select Box es útil para este tipo de cosas.
Puede eliminar fácilmente un elemento por índice, valor o expresión regular.
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"]);
Para eliminar todas las opciones, puede hacer $("#myselect").removeOption(/./);
.
Para quitar un artículo
$("select#mySelect option[value=''option1'']").remove();
Para agregar un artículo
$("#mySelect").append(''<option value="option1">Option</option>'');
Para comprobar una opción
$(''#yourSelect option[value=yourValue]'').length > 0;
Para eliminar una opción seleccionada
$(''#mySelect :selected'').remove();
Puede eliminar el elemento seleccionado con esto:
$("#selectBox option:selected").remove();
Esto es útil si tiene una lista y no un menú desplegable.
Si alguien necesita eliminar TODAS las opciones dentro de una selección, hice una pequeña función.
Espero que les sea útil
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();
})
}
Solo hay que correr
removeAllOptionsSelect("#contenedor_modelos");
Solo para aumentar esto para cualquiera que busque, también puede:
$("#selectBox option[value=''option1'']").hide();
y
$("#selectBox option[value=''option1'']").show();
Solo quiero sugerir otra forma de agregar una option
. En lugar de establecer el value
y el text
como una cadena, también se puede hacer:
var option = $(''<option/>'')
.val(''option5'')
.text(''option5'');
$(''#selectBox'').append(option);
Esta es una solución menos propensa a errores al agregar valores y textos de opciones de forma dinámica.
Tuve que eliminar la primera opción de una selección, sin ID, solo una clase, así que usé este código con éxito:
$(''select.validation'').find(''option:first'').remove();
esto es seleccionar cuadro 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>
cuando desee eliminar totalmente y agregar la opción desde el cuadro de selección, puede usar este código
$("#selectBox option[value=''option1'']").remove();
$("#selectBox").append(''<option value="option1">Option</option>'');
en algún momento necesitamos ocultar y mostrar la opción del cuadro de selección, pero no eliminar, entonces puede usar este código
$("#selectBox option[value=''option1'']").hide();
$("#selectBox option[value=''option1'']").show();
A veces es necesario eliminar la opción seleccionada del cuadro de selección y luego
$(''#selectBox :selected'').remove();
$("#selectBox option:selected").remove();
Cuando necesite eliminar todas las opciones, entonces este código
(''#selectBox'').empty();
Cuando se necesita la primera opción o la última, entonces este código
$(''#selectBox'').find(''option:first'').remove();
$(''#selectBox'').find(''option:last'').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;
}
Para agregar el elemento, crearía el segundo cuadro de selección y:
var select2 = document.getElementById(''selectBox2'');
var addSelect = document.getElementById(''addSelect'');
function add()
{
value1 = select2.selectedIndex;
select.appendChild(select2[value1]);
}
addSelect.onclick = add;
Aunque no jQuery.