Estoy tratando de obtener valores de todas las casillas de verificación que están marcadas actualmente y almacenarlas en una matriz. Aquí está mi código hasta ahora:
$("#merge_button").click(function(event){
event.preventDefault();
var searchIDs = $("#find-table input:checkbox:checked").map(function(){
return $(this).val();
});
console.log(searchIDs);
});
Sin embargo, esto genera más de lo que necesito. No solo obtengo los valores, sino algunas otras cosas que no quiero.
["51729b62c9f2673e4c000004", "517299e7c9f26782a7000003", "51729975c9f267f3b5000002", prevObject: jQuery.fn.jQuery.init [3], contexto: documento, jquery: "1.9.1", función: constructor: función ...
Me gustaría solo las identificaciones (primeros 3 artículos en este caso).
Al usar $.each
y empujar valores a una matriz obtengo la salida deseada:
$("#find-table input:checkbox:checked").each(function(){ myArray.push($(this).val()); })
["51729b62c9f2673e4c000004", "517299e7c9f26782a7000003", "51729975c9f267f3b5000002"]
Sin embargo, me gustaría usar $.map
, ya que me ahorra una línea de código y es más bonita.
Gracias
fuente
$.map
. Gracias por la solución, funciona..get()
es necesario, cuando la función está devolviendo el.val()
de cada elemento en la colección jQuery. ¿Es esto porque lomap
convierte de nuevo en un objeto jQuery antes de pasarlosearchIDs
?DEMO: http://jsfiddle.net/PBhHK/
Simplemente llame a get () y tendrá su matriz tal como está escrita en las especificaciones: http://api.jquery.com/map/
fuente
Necesita agregar
.toArray()
al final de su.map()
funciónDemostración: http://jsfiddle.net/sZQtL/
fuente
Reformé un poco su código y creo que llegué con la solución que estaba buscando. Básicamente, en lugar de establecer
searchIDs
que sea el resultado de.map()
que acabo de insertar los valores en una matriz.Creé un violín con el código en ejecución.
fuente
¡Este funcionó para mí!
fuente
Se necesitaban los elementos del formulario nombrados en el HTML como una matriz para ser una matriz en el objeto javascript, como si el formulario se hubiera enviado realmente.
Si hay un formulario con varias casillas de verificación como:
El resultado es un objeto con:
Y hay toneladas de respuestas aquí que ayudaron a mejorar mi código, pero eran demasiado complejas o no querían exactamente lo que quería: convertir datos de formulario a objetos JavaScript con jQuery
Funciona pero se puede mejorar: solo funciona en matrices unidimensionales y los índices resultantes pueden no ser secuenciales. La propiedad de longitud de una matriz devuelve el siguiente número de índice como la longitud de la matriz, no la longitud real.
Espero que esto haya ayudado. Namaste!
fuente
fuente
No use "cada uno". Se utiliza para operaciones y cambios en el mismo elemento. Use "map" para extraer datos del cuerpo del elemento y usarlo en otro lugar.
fuente
map
fuente