jQuery で attr, prop, data の違い

http://tools.m-bsys.com/ex/attr-prop.php

attr(name)

要素の持っている属性(attribute)の値を取得、設定する。
javascriptで言うと、element.getAttribute(name), element.setAttribute(name, value) に相当する。

prop(name)

要素をDOMオブジェクトとして扱うとき、その要素が持っているプロパティの値を取得、設定する。
javascriptで言うと、element[name], element[name] = value に相当する。

data(name)

要素の持っているHTML5カスタムデータ属性("data-"で始まる属性)の値を取得、設定する。
キャッシュが効くとか、余計なお世話で数値などに自動変換されるとかで、バグの原因になるので使わないほうが無難っぽい。

checkedを扱う時に…

よくあるパターンだと、checkedを扱う時にattrとpropの差が表面化する。
checked属性は、その属性が存在していればどのような値を持っていても