jQueryのattrメソッドとpropメソッド
jQueryデザイン入門の読者の方から、書籍中の jQueryのattrメソッドの使い方(P281)が間違っているのでは?とご質問をいただいたので解説をします。
jQueryではバージョンによって挙動が変わったメソッドが幾つかあり、attrメソッドはその一つです。(変わったといっても少しだけですが)
attrメソッドでチェックボックスの値を取得しようとした場合、次のような変更がありました。
<input type="checkbox" name="01" checked="checked">
<input type="checkbox" name="02">
$("input").each(function(){
alert($(this).attr("checked"))
});
上記のコードをjQuery1.5.2 で実行した場合、name「01」は「true」をname「02」は「false」を返します。(書籍でもこのように解説しています)
ただし、jQuery1.6から仕様が変更されており、name「01」は「checked」をname「02」は「undefined」を返します。
代わりにpropメソッドが新たに追加されており、propメソッドではname「01」は「true」をname「02」は「false」を返します。
$("input").each(function(){
alert($(this).prop("checked"))
});
というわけでjQuery1.6以上でP281のサンプルを利用する場合はpropメソッドに変更して利用してください。
スポンサードリンク
«スマートフォンサイト制作実践講座を行ないます。 | メイン | Amazonの2012年 上半期Booksランキング(コンピュータ書籍)で14位になりました。»