2012-09-14 8 views
6

मान लिया जाये कि मैं HTML इस के समान है: स्क्रिप्ट में मेरा प्रवेश बिंदु लंगर है और मैं वर्ग fooContainer साथ div मैं यह कर सकता करने के लिए प्राप्त करने की आवश्यकताjQuery में। चयनकर्ता संपत्ति वैध चयनकर्ता मूल्य क्यों संग्रहीत नहीं करती है?

<div class="fooContainer"> 
    <div class="barContainer"> 
     <a href="#">foo-bar</a> 
    </div> 
</div> 

हैं:

var $fooContainer = $("a").parents(".fooContainer"); 

यह $fooContainer के रूप में पूरी तरह से ठीक काम करता है अब डीओएम में तत्व का संदर्भ रखता है।

जब मैं अब बाहर इस तरह selector मूल्य प्रिंट:

console.log($fooContainer.selector) 

मैं मूल्य a.parents(.fooContainer) मिलता है।

मैं इस धारणा के तहत था कि selector संपत्ति ने एक स्ट्रिंग लौटा दी जो स्वयं एक वैध चयनकर्ता मान होगा।

$("a.parents(.fooContainer)") 

यह jQuery 1.7.2 में एक मैच नहीं मिल सकता है:

यह हालांकि के रूप में जब इस तरह एक चयनकर्ता के रूप में उपयोग करने की कोशिश कर मामला नहीं है।
और नवीनतम jQuery 1.8.x में तो यह और भी एक अपवाद फेंकता है: Error: Syntax error, unrecognized expression: a.parents(.fooContainer)

  • क्यों चयनकर्ता संपत्ति एक वैध चयनकर्ता मान नहीं है?
  • यदि यह selector संपत्ति का उपयोग करने के लिए क्या नहीं करेगा?

मैंने जानकारी के लिए jQuery documentation खोज करने की कोशिश की लेकिन उस संपत्ति से संबंधित कुछ भी नहीं मिला।

+2

यह एक निजी है (जैसा कि "एपीआई में दस्तावेज नहीं है") संपत्ति है। आप समझते हैं कि आप हमें पुस्तकालय के आंतरिक कार्यान्वयन की व्याख्या करने के लिए कह रहे हैं? –

+2

एपीआई दस्तावेज में '। चयनकर्ता' नहीं ढूंढने का कारण शायद इसलिए है क्योंकि यह केवल आंतरिक उपयोग के लिए था। आपसे इसका उपयोग करने की उम्मीद नहीं की जाएगी, और आपको इसे कहीं भी आधिकारिक दस्तावेज नहीं मिलेगा। – Blazemonger

+0

@dystroy: उत्तर के लिए धन्यवाद। मुझे 'चयनकर्ता' निजी होने के बारे में पता नहीं था। अगर यह केवल आंतरिक उपयोग के लिए था, तो मैं खुशी से दूर रहना चाहता हूं :) मुझे आंतरिक कार्यान्वयन की व्याख्या करने की आवश्यकता नहीं है। हालांकि मुझे इस पर कोई दस्तावेज देखना अच्छा लगेगा। मुझे वह जानकारी कहां मिलती है? – Nope

उत्तर

5

आप आसानी से the source code पढ़ सकते हैं लेकिन in the browsable API दस्तावेज नहीं है आंतरिक और निजी है।

परिभाषा के अनुसार।

तो यह एक कार्यान्वयन विस्तार है, और एक ऐसी संपत्ति है जिसे आपको वास्तव में उपयोग करने की कोशिश नहीं करनी चाहिए क्योंकि भविष्य में कोई गारंटी नहीं है, न ही भविष्य के संस्करणों के लिए और न ही किसी भी उपयोग के लिए आप आज कल्पना कर सकते हैं।

+0

यह बहुत दिलचस्प है। सभी उपयोगी जानकारी के लिए धन्यवाद। मुझे पता नहीं था कि अगर यह दस्तावेज नहीं है तो यह आंतरिक या निजी है। 'मैं आपके अंतिम बयान पर 100% सहमत हूं। यह जोखिम भरा है। मैं बस यह सुनिश्चित करना चाहता था कि मुझे प्रलेखन याद नहीं आया। मैंने पहले 'चयनकर्ता' का उपयोग नहीं किया था, लेकिन जब मैंने इसे आज देखा तो मैंने सोचा कि यह ऐसा कुछ था जिसका मैं उपयोग कर सकता हूं। जो अब स्पष्ट है, नहीं यह नहीं है :) मुझे याद होगा कि आपने दस्तावेज़ के बारे में क्या कहा था। बहुत बहुत धन्यवाद। – Nope

+0

अब उनके पास * internals * नामक एक अनुभाग है, जो मुझे लगता है कि निजी एपीआई का मतलब है। ['.selector'] (http://api.jquery.com/selector/) पर [स्पैस] दस्तावेज़ यहां दिया गया है। –

संबंधित मुद्दे