ラジオボタンのラベルの値が欲しいことがあった。
そんな時に試行錯誤の上に考えた方法。(あんまり需要はないだろうけど。。。)
まず、以下のようなhtmlがあるとする。
<input type="radio" name="sexId" value="1" />男
<input type="radio" name="sexId" value="2" />女
選択されたvalue値を取得するには以下の方法で出来る。
var val = $("input:radio[name='sexId']:checked").val()
今回やりたいのは、ラベル(男、女)の値が欲しい。value値は変えられない前提。
色々、探して以下のサイトを参考にした。
http://ascii.jp/elem/000/000/456/456040/index-2.html
まず、htmlは以下のようにする。
<input type="radio" name="sexId" value="1" id="man"/><label for="man">男</label>
<input type="radio" name="sexId" value="2" id="woman"/><label for="woman">女</label>
scriptでは、以下のようにした。
var val = $("label[for='"+$("input:radio[name='sexId']:checked").attr("id")+"']").text();
label forで、テキスト部分でチェックも出来るしいい感じ。
もっとスマートな方法があるかもしれないけど、一応できたから良しとしよう。
ちなみにセレクトボックスの選択されてるオプションのラベルの取得は、
$('#[selectのid名前] option:selected').text();
または、
$('#[selectのid名前]').children(':selected').text():
という感じです。
以上