MW211 EXIT

devlog
jQuery/.attr()と.prop()の違い
2012年08月29日
毎度、毎度、混乱すると「.attr('disabled', 'disabled');」
「.prop('disabled', true);」の違い。

いい加減まとめておかねば、また混乱しそう。

まずjQuery1.6で「.prop()」が追加されたらしい。

inputタグとかでは、「.attr('value')」は初期値(既定値)を取得するけど
「.prop('value')」は入力中の値を取得できるらしい。

ま、これが両者の個性を端的に示す一例ってことだろう。

ま、当初は明確に分離しようとしてたらしいけど反発をくらって
「.attr()」が後方互換を維持することになり、
「.attr()」⊃「.prop()」ってことらしい(だからややこしい)。

基本、HTML属性は「.attr()」、JavaScriptプロパティは「.prop()」って
覚えればいいらしく、「.attr('disabled', 'disabled');」より
「.prop('disabled', true);」が推奨みたい。

う~ん、disabledってHTML属性じゃないのか。。。?

あ、動的に変化するやつ、させるやつは「.prop()」なんだ。

静的=「.attr()」、動的=「.prop()」なのだね、納得。
分類:jQuery