.prop()

属性プロパティに値を設定、または設定されている値を取得します。

.prop( name ) 1.6追加

戻り値:String

指定した属性の値を取得します。

引数 説明
name 値を取得したいプロパティの名前を指定します。
<input id="check1" type="checkbox" checked="checked" />
//jQuery1.6.1以上の場合
var is_checked   = $('#check1').prop('checked');  //trueが返る
var attr_checked = $('#check1').attr('checked');  //'checked'が返る

要素が複数マッチしている場合、最初の要素の属性のみを取得します。 各要素の属性値を取得したい場合は、.each()や.map()を使用してください。

.prop( name, value ) 1.6追加

戻り値:jQuery

指定した属性に値を設定します。

引数 説明
name 値を設定したい属性の名前を指定します。
value 設定する値を指定します。
$("input").prop("disabled", false);
$("input").prop("checked", true);

.prop( map ) 1.6追加

戻り値:jQuery

各属性にmap値を用いてまとめて値を設定します。

引数 説明
map 属性名と値のペアのMap値を指定することで、まとめて要素の属性を設定することが出来ます。

.prop( name, function(index, prop)) 1.6追加

戻り値:jQuery

指定した属性に関数の戻り値を設定します。

引数 説明
name 値を設定したい属性の名前を指定します。
function(index, prop)

新しい属性値を戻り値として返す関数を指定します。 関数で取得できる2つの引数は、下記のとおりです。

index
要素の番号
prop
変更前の属性の値

戻り値が無い、またはundefinedの場合、属性値は変更されません。

$("input[type='checkbox']").prop("checked", function( i, val ) {
  return !val;  //各チェックボックスのチェック状態を反転します。
});

jQuery1.6で追加された.prop()と.attr()の問題

このようなINPUTタグの場合、それぞれのcheckedの値取得の違いについて、下記を参考にしてください。

<input type="checkbox" checked="checked" />
処理
elem.checked TRUE
チェックの状態で取得値も変化します。
$(elem).prop("checked") TRUE
チェックの状態で取得値も変化します。
elem.getAttribute("checked") "checked" (文字列です)
この取得値は最初に設定された値を取得するため、チェックの状態が変わっても値は変化しません。
$(elem).attr("checked")
1.6
"checked" (文字列です)
この取得値は最初に設定された値を取得するため、チェックの状態が変わっても値は変化しません。 1.6では、.attr()はgetAttributeと同じ挙動をします。
$(elem).attr("checked")
1.6.1以上
"checked" (文字列です)
チェックの状態で取得値も変化します。
$(elem).attr("checked")
1.6より以前
TRUE
チェックの状態で取得値も変化します。

 Back to top

© 2010 - 2017 STUDIO KINGDOM