【Javascript】jqueryでチェックされているチェックボックスを取得したい
間違ってはいないと思うけどこちらの方がおすすめみたいです
問題
jqueryでチェックされているチェックボックスを取得したい
答え
$('input:checkbox:checked')
$("input[type='checkbox'][checked='checked']")
ではだめなの?
ブラウザによって結果が違ってしまうのでやめたほうがよい。
例のごとくIEだけが仲間はずれ。IEだけがelement.querySelector、element.querySelectorAllをサポートしていないため、内部で別のセレクタエンジンで処理される場合がある。
$("input[type='checkbox']")
までは問題ない。
checked属性がかかわってくると、IEなら$("input[type='checkbox'][checked='checked']")
はダメで、$("input[type='checkbox'][checked=true]")
なら取得できたり、IE以外だと$("input[type='checkbox'][checked='checked']")
で読み込み当時の状況(チェックボックスの値が変化する前の状態)が取得できたり、まあ面倒なことになります。
$('input:checkbox:checked')
を使えば、内部ではelement.checked === true を見て判断をしてくれるので、どのブラウザでも同じ結果を得られます。
ラジオボタンならこうする
$('input:radio:checked')
コメント