jQueryのpropメソッドとattrメソッド
このエントリーはjQuery Advent Calendar 2013の 4日目のエントリーです。(Advent Calendarとは様々なテーマを12/1〜12/25までリレー形式でブログなどに執筆する企画です。)
jQueryのattrメソッドの仕様がjQuery 1.9から変わったのでpropメソッドと含めて現在の仕様の解説を行ないます。
次のスクリプトではattrメソッドとpropメソッドでチェックボックスの状態を監視して取得しています。
$("input").change(function(){
alert("attr:"+$(this).attr("checked")+"\n"+"prop:"+$(this).prop("checked"))
});
この挙動をjQuery 1.10.2とjQuery 1.8.3で比較してみましょう。
このようにpropメソッドの値は共にチェックが入っている場合はtrue or falseを返しますが、attrメソッドはjQuery 1.8.3ではチェックが入っている場合に「checked」、入っていない場合に「undefined」を返しますが、jQuery 1.10.2では共に「undefined」を返します。
このようにjQuery 1.9よりチェックボックスやラジオボタンの状態を取得するにはpropメソッドを利用しなくてはいけなくなったので注意が必要です。
あと、jQuery Advent Calendar 2013はまだ空きがあるので興味がある人はjQueryについて何か書いてみませんか?
関連エントリー
jQuery基礎文法最速マスター
jQueryを良くする25のTIPS
14のjQueryベストプラクティス
8のjQueryのすごいTIPS
Re:初心者のコーダーでも簡単に実装出来るJavaScript/jQuery Tips