यह इष्टतम से बहुत दूर है लेकिन कुछ मामलों में काम करता है। आप निम्न कार्य कर सकते हैं:
jQuery.fn._init = jQuery.fn.init
jQuery.fn.init = function(selector, context) {
return (typeof selector === 'string') ? jQuery.fn._init(selector, context).data('selector', selector) : jQuery.fn._init(selector, context);
};
jQuery.fn.getSelector = function() {
return jQuery(this).data('selector');
};
यह तत्व के लिए उपयोग किए गए अंतिम चयनकर्ता को वापस कर देगा। लेकिन यह मौजूदा मौजूदा तत्वों पर काम नहीं करेगा।
<div id='foo'>Select me!</div>
<script type='text/javascript'>
$('#foo').getSelector(); //'#foo'
$('div[id="foo"]').getSelector(); //'div[id="foo"]'
$('#iDoNotExist').getSelector(); // undefined
</script>
यह jQuery 1.2.6 और 1.3.1 और संभवतः अन्य संस्करणों के साथ काम करता है।
इसके अलावा
:
<div id='foo'>Select me!</div>
<script type='text/javascript'>
$foo = $('div#foo');
$('#foo').getSelector(); //'#foo'
$foo.getSelector(); //'#foo' instead of 'div#foo'
</script>
संपादित
यदि आप immidiatly जाँच चयनकर्ता के बाद आप अपने प्लगइन में निम्नलिखित इस्तेमाल कर सकते हैं इस्तेमाल किया गया है:
jQuery.getLastSelector = function() {
return jQuery.getLastSelector.lastSelector;
};
jQuery.fn._init = jQuery.fn.init
jQuery.fn.init = function(selector, context) {
if(typeof selector === 'string') {
jQuery.getLastSelector.lastSelector = selector;
}
return jQuery.fn._init(selector, context);
};
तो निम्नलिखित काम करेगा:
<div id='foo'>Select me!</div>
<script type='text/javascript'>
$('div#foo');
$.getLastSelector(); //'#foo'
$('#iDoNotExist');
$.getLastSelector(); // #iDoNotExist'
</script>
अपने प्लगइन में आप कर सकता है:
jQuery.fn.myPlugin = function(){
selector = $.getLastSelector;
alert(selector);
this.each(function() {
//do plugins stuff
}
}
$('div').myPlugin(); //alerts 'div'
$('#iDoNotExist').myPlugin(); //alerts '#iDoNotExist'
लेकिन फिर भी:
$div = $('div');
$('foo');
$div.myPlugin(); //alerts 'foo'
स्रोत
2009-02-01 18:26:29
आप प्रारंभिक चयनकर्ता प्राप्त कर सकते हैं यहां तक कि अगर, याद रखें कि आपके पास $ ("cat.dog") जैसे कुछ हो सकते हैं। माता-पिता ("div: first")। ("तोता") ढूंढें। प्रत्येक (फ़ंक्शन() {/*...*/}); जहां आपके पास बस एक साधारण चयनकर्ता नहीं है। – svinto
एक बिंदु है जिसके साथ मैं संघर्ष कर रहा हूं। मैं शायद पेड़ को पार करने के बारे में सोच रहा हूं, लेकिन ज्यादातर अंतिम तत्व प्राप्त करना ठीक है। मैं आमतौर पर इस $ ('बिल्ली') की तरह कुछ करना चाहता हूं। assertNonEmpty()। प्रत्येक (फ़ंक्शन() {}); –
कोई भी मौका आप jQuery 1.3.1 में अपग्रेड कर सकते हैं और "चयनकर्ता" का उपयोग कर सकते हैं? – Nosredna