SOFTELメモ Developer's blog

[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でループしながらほかにやることがあるなど、ついでがあるならこれもよい。

関連するメモ

コメント