¿Cómo puedo obtener todas las opciones de una selección a través de jQuery pasando su ID?
Solo busco obtener sus valores, no el texto.
¿Cómo puedo obtener todas las opciones de una selección a través de jQuery pasando su ID?
Solo busco obtener sus valores, no el texto.
Respuestas:
Utilizar:
$("#id option").each(function()
{
// Add $(this).val() to your list
});
$.map
es mucho más elegante y menos propenso a errores (ver más abajo).
$('#id option').map((index, option) => option.value)
: observe cómo se invierte la firma de devolución de llamada en comparación con la map
función JS "vainilla" ( (item, index) =>
)
No conozco jQuery, pero sí sé que si obtiene el elemento select, contiene un objeto 'opciones'.
var myOpts = document.getElementById('yourselect').options;
alert(myOpts[0].value) //=> Value of the first option
$.map
es probablemente la forma más eficiente de hacer esto.
var options = $('#selectBox option');
var values = $.map(options ,function(option) {
return option.value;
});
Puede agregar opciones de cambio $('#selectBox option:selected')
si solo desea las que están seleccionadas.
La primera línea selecciona todas las casillas de verificación y coloca su elemento jQuery en una variable. Luego usamos la .map
función de jQuery para aplicar una función a cada uno de los elementos de esa variable; todo lo que estamos haciendo es devolver el valor de cada elemento, ya que eso es todo lo que nos importa. Debido a que los devolvemos dentro de la función de mapa, en realidad genera una matriz de valores tal como se solicitó.
$('#selectBox').val()
devolverá una matriz de los valores seleccionados.
Algunas respuestas usan each
, pero map
es una mejor alternativa aquí en mi humilde opinión:
$("select#example option").map(function() {return $(this).val();}).get();
Hay (al menos) dos map
funciones en jQuery. La respuesta de Thomas Petersen usa "Utilities / jQuery.map"; esta respuesta usa "Recorrido / mapa" (y, por lo tanto, un código un poco más limpio).
Depende de lo que va a hacer con los valores. Si, digamos, desea devolver los valores de una función, map
es probablemente la mejor alternativa. Pero si va a utilizar los valores directamente, probablemente lo desee each
.
get()
el objeto devuelto funcione con una matriz básica". - api.jquery.com/map
text()
lugar val()
. Gracias ! (Te ;->
$('select#id').find('option').each(function() {
alert($(this).val());
});
$("#id option").each(function()
{
$(this).prop('selected', true);
});
Aunque, la forma CORRECTA es establecer la propiedad DOM del elemento, así:
$("#id option").each(function(){
$(this).attr('selected', true);
});
Esto pondrá los valores de la opción #myselectbox
en una matriz limpia y agradable para usted:
// First, get the elements into a list
var domelts = $('#myselectbox option');
// Next, translate that into an array of just the values
var values = $.map(domelts, function(elt, i) { return $(elt).val();});
$.map(domelts, elt=> $(elt).val())
Puede tomar todos sus "valores seleccionados" por el nombre de las casillas de verificación y presentarlos en una picadura separada por ",".
Una buena manera de hacer esto es usar jQuery's $ .map ():
var selected_val = $.map($("input[name='d_name']:checked"), function(a)
{
return a.value;
}).join(',');
alert(selected_val);
select
y option
no casillas de verificación.
La forma más eficiente de hacer esto es usar $.map()
Ejemplo:
var values = $.map($('#selectBox option'), function(ele) {
return ele.value;
});
Puede usar el siguiente código para eso:
var assignedRoleId = new Array();
$('#RolesListAssigned option').each(function(){
assignedRoleId.push(this.value);
});
Para la opción de selección múltiple:
$('#test').val()
Devuelve la lista de valores seleccionados.
$('#test option').length
devuelve el número total de opciones (tanto seleccionadas como no seleccionadas)
Este es un script simple con jQuery:
var items = $("#IDSELECT > option").map(function() {
var opt = {};
opt[$(this).val()] = $(this).text();
return opt;
}).get();
var selectvalues = [];
for(var i = 0; i < items.length; i++) {
for(key in items[i]) {
var id = key;
var text = items[i][key];
item = {}
item ["id"] = id;
item ["text"] = text;
selectvalues.push(item);
}
}
console.log(selectvalues);
copy(selectvalues);
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
Aquí hay un ejemplo simple en jquery para obtener todos los valores, textos o valores del elemento seleccionado, o el texto del elemento seleccionado.
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
printOptionValues = () => {
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).val());
})
}
printOptionTexts = () => {
$('#nCS1 > option').each((index, obj) => {
console.log($(obj).text());
})
}
printSelectedItemText = () => {
console.log($('#nCS1 option:selected').text());
}
printSelectedItemValue = () => {
console.log($('#nCS1 option:selected').val());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select size="1" id="nCS1" name="nCS1" class="form-control" >
<option value="22">Australia</option>
<option value="23">Brunei</option>
<option value="33">Cambodia</option>
<option value="32">Canada</option>
<option value="27">Dubai</option>
<option value="28">Indonesia</option>
<option value="25">Malaysia</option>
</select>
<br/>
<input type='button' onclick='printOptionValues()' value='print option values' />
<br/>
<input type='button' onclick='printOptionTexts()' value='print option texts' />
<br/>
<input type='button' onclick='printSelectedItemText()' value='print selected option text'/>
<br/>
<input type='button' onclick='printSelectedItemValue()' value='print selected option value' />
$("input[type=checkbox][checked]").serializeArray();
O:
$(".some_class[type=checkbox][checked]").serializeArray();
Para ver los resultados:
alert($("input[type=checkbox][checked]").serializeArray().toSource());
El camino corto
$(() => {
$('#myselect option').each((index, data) => {
console.log(data.attributes.value.value)
})})
o
export function GetSelectValues(id) {
const mData = document.getElementById(id);
let arry = [];
for (let index = 0; index < mData.children.length; index++) {
arry.push(mData.children[index].value);
}
return arry;}