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で比較してみましょう。

サンプル1

このように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

スポンサードリンク

«jQueryのstopメソッドとfinishメソッド | メイン | File APIを使ってみよう»