5

jQuery 1.9 以降、.selectorjQuery オブジェクトのプロパティは削除されました。(正確には、その理由について少し混乱しています)。私は実際にいくつかのユニークなシナリオでそれを使用しており、これを防ぐために他のことを行うことができることを知っています. 1.9 の時点でセレクターを取得する別の方法を誰かが知っているかどうか疑問に思っていますか?

$('#whatever').selector // (would of returned '#whatever')  

.selectorが必要な場所の一例は、既に名前でチェックボックスのグループがあり、そのグループ内でどれがチェックされているかを確認したい場合です:

jsFiddle デモ

var $test = $('input[name="test"]');

console.log( $test );
console.log( $(':checked', $test).attr('id') ); // returns --undefined--

console.log( 'now with .selector: ');
console.log( $($test.selector + ':checked').attr('id') ); // returns correct

ドキュメントから: jQuery オブジェクトの .selector プロパティ

jQuery オブジェクトの非推奨の .selector プロパティの残りの目的は、非推奨の .live() イベントをサポートすることです。1.9 では、連鎖メソッドの使用が .live() でサポートされていなかったため、jQuery は連鎖メソッドでこのプロパティを維持しようとしなくなりました。jQuery オブジェクトで .selector プロパティを使用しないでください。jQuery Migrate プラグインは、このプロパティを維持しようとしません。

4

2 に答える 2

4

元のセレクターが実際に必要になる理由はそれほど多くないはずです。特定のユースケースで、選択した要素のセットを絞り込みたい場合は、.filter [docs]を使用できます。

$test.filter(':checked').attr('id')

$('#whatever').selectorそれでも動作するようです。ドキュメントには、「1.9では、jQueryは連鎖メソッドでこのプロパティを維持しようとしなくなりました[...]」と記載されています。http://api.jquery.com/selectorは、1.9で削除されたと主張していますが。わかりません、少し紛らわしいです。

于 2013-02-19T18:44:36.553 に答える