[jQuery] チェックされたチェックボックスのvalueを全部取得する
問題
検索結果の一覧のそれぞれの行にチェックボックスがついていて、valueにはそれぞれのレコードのIDが入っているという状況で、
チェックされたチェックボックスのvalueを取得したいです。
答え
map的な関数が使える。
チェックボックスのセレクタは状況に応じて調整してください。
例) table の中のcheckbox → $('table :checkbox')
例) table の中のcheckbox → $('table input[type=checkbox]')
例) 対象のcheckboxに class="check" を付与 → $('.check')
例 1
const ids = $('.check:checked').map(function(i, x) { return x.value; }).get()
$(".check:checked") でチェックされたものだけが取得できる。
$(".check:checked").map(function(i, x) { return x.value; }) でvalueの一覧が入ったjQuery Objectが取得できる。
.get() でプレーンな配列になる。
例 2
const ids = $.map($('.check:checked'), function(x) { return x.value; })
$.map() でもできる。
例 3
const ids = []
$('.check:checked').each(function(i, x) { ids.push(x.value); })
配列 ids にvalueを集めていく方式。
eachでループしながらほかにやることがあるなど、ついでがあるならこれもよい。
コメント