ドキュメントから
特定の状況では、属性とプロパティの違いが重要になる場合があります。jQuery 1.6 より前では、一部の属性を取得するときに .attr() メソッドがプロパティ値を考慮に入れることがあり、一貫性のない動作を引き起こす可能性がありました。jQuery 1.6 以降、.prop() メソッドはプロパティ値を明示的に取得する方法を提供し、.attr() は属性を取得します。
例
たとえば、selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked、および defaultSelected を取得して、.prop() メソッドで設定する必要があります。jQuery 1.6 より前では、これらのプロパティは .attr() メソッドで取得できましたが、これは attr の範囲内ではありませんでした。これらには対応する属性がなく、単なるプロパティです。
コメント後に更新
HTML要素に属性を設定できます。ソース コードを記述しながら定義します。ブラウザがコードを解析すると、対応する DOM ノードが作成されます。これはオブジェクトであり、プロパティを持ちます。
簡単な例は..
<input type="test" value="test" id="test" />
ここで、type、value、idは属性です。ブラウザーがレンダリングすると、 align、alt、autofocus、baseURI、checkedなどの他のプロパティが取得されます。
これについてもっと読みたい場合はリンク