jquery 1.6 で追加された新しいメソッド prop() ですが、私はそれを使用したことがありません。公式の説明は、「一致した要素セットの最初の要素の属性値を取得する」という 1 つの文のみです。
一部のブラウザでは、disabled と selected のみを記述する必要がある一方、attr("checked") を使用してチェックボックスの selected 属性を取得する場合など、他のブラウザでは、disabled = "disabled"、checked="checked" と記述する必要があることは誰もが知っています。チェックが入っている場合は値が取得できますが、チェックされていない場合は値が取得されません。
jq は、この問題を解決するために、これらの属性を取得するための新しいメソッド "prop" を提供します。以前は、attr を使用して selected 属性を取得していましたが、これからは prop を使用すると "checked" と "" が返されました。メソッドで属性を取得すると、一律に true と false を返します。
それでは、いつ attr() を使用し、いつ prop() を使用するのでしょうか?
1. 属性名を追加すると、prop();
2. true と false の 2 つの属性がある場合は、prop();
3 を使用します。属性については、attr(); を使用してください。
プロジェクトで jquery をアップグレードするときは、全員がこれに注意する必要があります。
以下は attr() と prop() の使用に関する公式の推奨事項です:
Attribute/Property | .attr() |
.prop() |
---|---|---|
accesskey | √ | |
align | √ | |
async | √ | √ |
autofocus | √ | √ |
checked | √ | √ |
class | √ | |
contenteditable | √ | |
draggable | √ | |
href | √ | |
id | √ | |
label | √ | |
location ( i.e. window.location ) | √ | √ |
multiple | √ | √ |
readOnly | √ | √ |
rel | √ | |
selected | √ | √ |
src | √ | |
tabindex | √ | |
title | √ | |
type | √ | |
width ( if needed over .width() ) |
√ |