Próbuję uzyskać wartości wszystkich pól wyboru, które są obecnie zaznaczone i przechowywać je w tablicy. Oto mój kod do tej pory:jQuery pobiera wartości zaznaczonych pól wyboru do tablicy
$("#merge_button").click(function(event){
event.preventDefault();
var searchIDs = $("#find-table input:checkbox:checked").map(function(){
return $(this).val();
});
console.log(searchIDs);
});
Jednak to generuje więcej niż muszę. Dostaję nie tylko wartości, ale i inne rzeczy, których nie chcę.
[ "51729b62c9f2673e4c000004", "517299e7c9f26782a7000003" "51729975c9f267f3b5000002" prevObject: jQuery.fn.jQuery.init [3] kontekst: Dokument jQuery "1.9.1" konstruktor: funkcja init: funkcja ...]
Chciałbym tylko identyfikatory (pierwsze 3 pozycje w tym przypadku).
Stosując $.each
i popychając wartości tablicy uzyskać pożądany wynik:
$("#find-table input:checkbox:checked").each(function(){ myArray.push($(this).val()); })
[ "51729b62c9f2673e4c000004", "517299e7c9f26782a7000003" "51729975c9f267f3b5000002"]
Jednakże I” Chciałbym użyć $.map
, ponieważ zapisuje mi linię kodu i jest ładniejsza.
Dzięki
Spodziewałem się prawdziwej macierzy z '$ .map'. Dzięki za rozwiązanie, działa. –
Dziękuję bardzo, potrzebuję tego dla ma Ticketcenter – Steven
Rzeczą, której nie rozumiem jest to, dlaczego '.get()' jest potrzebna, gdy funkcja zwraca '.val()' z każdego elementu w kolekcja jQuery. Czy to dlatego, że 'map' zamienia go z powrotem w obiekt jQuery przed przekazaniem go do' searchIDs'? – iconoclast