2013-05-30 16 views
7

私は現在のスクリプトを呼び出すためにセレクタを取得しようとしていますが、私が必要とするプロパティはもちろんですremoved for some reason.jQueryの.selectorプロパティが削除された、回避策?

これには対策がありますか?ここで私が達成したいものを基本的にです:

(function($) { 
    $.fn.myplugin = function(options) { 
     return this.each(function() { 
      console.log($(this).selector); 
     }); 
    } 
}(jQuery)); 

//Somwehere else: 

$('.theClassISelected').myplugin(); //Should console.log('.theClassISelected') 

selectorプロパティは、jQueryのから削除されているので、私は、コンソールに.theClassISelected(または私は関数を呼び出すために使用された元のセレクタのいくつかのフォーム)を参照してくださいする必要がありますが、、それはもはや不可能です。

なぜ私はそれが削除されたのか理解していない - 今私はこの問題をしばらく見てきたと私はすべてのStackOverflowの回答はselectorプロパティを推薦する2011-2012からの回答です。私はそれがある時点で有用だったと思うが、もはやそれはない? jQueryのドキュメントから

+0

私はそれがどこにあるのかも分かりませんが、jQuery 1.8のソースツリーを使って検索することができます:https://github.com/jquery/jquery/tree/1.8-stable – Blender

+1

。それは場合に役立ちます参照してください。.. [1] [1] [代替は、それがjQueryの1.9で削除されていることを今プロパティを.selectorします]:http://stackoverflow.com/questions/14964760/alternative- jquery-now-it-it-that-in-jquery-1-9 –

+1

http://stackoverflow.com/questions/500246/how-do-i-get-a-jquery-selectors-to-select- expression-as-text/501316#501316 – billyonecan

答えて

3

:セレクタを使用する必要が

プラグインは、呼び出し側は初期化時に、プラグインの引数の一部としてセレクタに渡す必要があります。余談として

http://api.jquery.com/selector/

、ドキュメントはまた、以降セレクタプロパティが信頼できないあったことを言及し、「後続のトラバーサル方法のでセットを変更した可能性があります。」

+0

ええ、 '$( '.ClassISelected')。myplugin($( '。theClassIsSelected'));'私にとってさらに悪く見えます。 – Scott

+1

ええ、それはanwser、downvoteの理由はありません –

+1

@ジャクソンは合意しました...それは醜いですが、私はセレクターへのアクセスを得るために別の方法は表示されません:/ – cfs