-2

私はいくつかの古いjQuery作業コードを持っていました:

if ($element.attr('checked') === 'checked')

提案されたものに書き直されることはありませんでした:

if ($element.prop('checked'))

それでもうまくいきました。

しかし今、私はjQuery 1.9.1に更新し、attrでcheckedにアクセスするとundefinedが返されます。jQuery が、checked/disabled/selected などの一部の DOM プロパティのサポートを中止したということですか?

4

1 に答える 1

1

jQuery 1.6では、ノードのプロパティを設定または取得するための.prop()メソッドが導入され、プロパティを設定するための.attr()の使用は非推奨になりました。ただし、1.9までのバージョンは、特定の状況での.attr()の使用を引き続きサポートしていました。下位互換性という名目でのこの動作は、属性とプロパティを区別するセレクターが使用されている場合に混乱を引き起こします。

jQuery自体からのこのアップグレードガイドをご覧ください。.attr()と.prop()

于 2013-03-05T14:07:06.077 に答える