Saya mencoba untuk mendapatkan nilai dari semua kotak centang yang saat ini diperiksa dan menyimpannya ke dalam array. Ini kode saya sejauh ini:
$("#merge_button").click(function(event){
event.preventDefault();
var searchIDs = $("#find-table input:checkbox:checked").map(function(){
return $(this).val();
});
console.log(searchIDs);
});
Namun ini menghasilkan lebih dari yang saya butuhkan. Saya tidak hanya mendapatkan nilai, tetapi beberapa hal lain yang tidak saya inginkan.
["51729b62c9f2673e4c000004", "517299e7c9f26782a7000003", "51729975c9f267f3b5000002", prevObject: jQuery.fn.jQuery.init [3], konteks: dokumen, jquery: fungsi: ", fungsi: fungsi:"
Saya ingin hanya ID (3 item pertama dalam kasus ini).
Dengan menggunakan $.each
dan mendorong nilai ke array saya mendapatkan output yang diinginkan:
$("#find-table input:checkbox:checked").each(function(){ myArray.push($(this).val()); })
["51729b62c9f2673e4c000004", "517299e7c9f26782a7000003", "51729975c9f267f3b5000002"]
Namun saya ingin menggunakan $.map
, karena menghemat satu baris kode dan lebih cantik.
Terima kasih
sumber
$.map
. Terima kasih atas solusinya, ini berhasil..get()
diperlukan, ketika fungsi mengembalikan.val()
dari setiap item dalam koleksi jQuery. Apakah ini karenamap
mengubahnya kembali menjadi objek jQuery sebelum meneruskannyasearchIDs
?DEMO: http://jsfiddle.net/PBhHK/
Panggil saja get () dan Anda akan memiliki array Anda seperti yang tertulis dalam spesifikasi: http://api.jquery.com/map/
sumber
Anda harus menambahkan
.toArray()
ke akhir.map()
fungsi AndaDemo: http://jsfiddle.net/sZQtL/
sumber
Saya refactored kode Anda sedikit dan percaya saya datang dengan solusi yang Anda cari. Pada dasarnya alih-alih menetapkan
searchIDs
menjadi hasil dari.map()
saya hanya mendorong nilai-nilai ke dalam array.Saya membuat biola dengan kode berjalan.
sumber
Yang ini berhasil untuk saya!
sumber
Diperlukan elemen form yang disebut dalam HTML sebagai array untuk menjadi array dalam objek javascript, seolah-olah form itu benar-benar dikirimkan.
Jika ada formulir dengan beberapa kotak centang seperti:
Hasilnya adalah objek dengan:
Dan ada banyak jawaban di sini yang membantu meningkatkan kode saya, tetapi mereka terlalu kompleks atau tidak persis ingin saya inginkan: Konversi data formulir ke objek JavaScript dengan jQuery
Bekerja tetapi dapat ditingkatkan: hanya bekerja pada array satu dimensi dan indeks yang dihasilkan mungkin tidak berurutan. Properti panjang array mengembalikan nomor indeks berikutnya sebagai panjang array, bukan panjang sebenarnya.
Semoga ini bisa membantu. Namaste!
sumber
sumber
Jangan gunakan "masing-masing". Ini digunakan untuk operasi dan perubahan pada elemen yang sama. Gunakan "peta" untuk mengekstrak data dari elemen tubuh dan menggunakannya di tempat lain.
sumber
map
sumber