2011-08-24 16 views
58

देता है मैं jQuery v1.6.1 का उपयोग नहीं कर रहा हूं।jQuery आईडी चयनकर्ता ("#id") ऐरे

मैं संग्रहीत वस्तुओं के मूल्य प्राप्त करने के लिए आईडी चयनकर्ताओं जैसे $j("#divID").value का उपयोग कर रहा हूं।

दुर्भाग्य से, $j("#inputID") आइटम की एक सूची लौटा रहा है, इसलिए मुझे ऑब्जेक्ट का मान प्राप्त करने के लिए $j("divID")[0].value का उपयोग करना होगा। [0] अनावश्यक लगता है, क्योंकि परिभाषा के अनुसार, किसी दिए गए आईडी के साथ केवल एक HTML तत्व है।

क्या यह आईडीड ऑब्जेक्ट से मूल्य प्राप्त करने का उचित तरीका है? या कोई बेहतर तरीका है?

धन्यवाद!

+0

आप '.val के अलावा अन्य मतलब()'? – user113716

+1

यदि '# divID' वास्तव में 'div' को संदर्भित करता है, तो' मान' या' .val() 'काम नहीं करेगा।केवल तत्वों के तत्वों में 'मान' संपत्ति होती है। –

+0

अच्छा बिंदु, @ फ़ेलिक्स। मैंने सवाल सही कर दिया है। – Richard

उत्तर

93

$j("#divID").val() ठीक काम करेगा।

jQuery documentation प्रति .val() मिलान किए गए तत्वों के सेट में पहले तत्व का मान वापस कर देगा।

यह समझदारी से समझ में आता है कि यह कैसे काम करता है यह देखने के लिए jQuery कैसे काम करता है। किसी भी चयनकर्ता क्वेरी का परिणाम एक jQuery वस्तु है। यह वह jQuery ऑब्जेक्ट है जिसमें jQuery की पेशकश की असंख्य विधियां शामिल हैं। .val() उन तरीकों में से एक है जैसे .fadeIn(), .hide(), आदि ... वे विधियां किसी DOM ऑब्जेक्ट पर विधियां नहीं हैं, लेकिन एक jQuery ऑब्जेक्ट के तरीके हैं। चूंकि jQuery ऑब्जेक्ट्स सामान्य उद्देश्य हैं और 0, 1 या अधिक DOM ऑब्जेक्ट्स को उनके आंतरिक सरणी में रख सकते हैं, तो आपको एक jQuery चयनकर्ता कॉल से वही jQuery ऑब्जेक्ट मिलता है, चाहे परिणामों में 0, 1 या अधिक DOM ऑब्जेक्ट हों।

इस प्रकार $j("#divID") जिसमें केवल एक वस्तु है, उसी प्रकार की वस्तु को $j(".rows") के रूप में लौटाती है जिसमें सैकड़ों डीओएम ऑब्जेक्ट हो सकते हैं। यह jQuery प्रोग्रामिंग को बहुत सरल बनाता है क्योंकि चयनकर्ता क्वेरी से कितनी ऑब्जेक्ट्स वापस आती हैं, इस पर निर्भर करते हुए आपको अलग-अलग चीजों को करने की ज़रूरत नहीं है।

जब आप $j("divID")[0] देखें, तो आप jQuery ऑब्जेक्ट की डीओएम ऑब्जेक्ट्स की आंतरिक सरणी (जो चयनकर्ता क्वेरी पर आबादी में थे) तक पहुंच रहे हैं और उस सरणी में पहली DOM ऑब्जेक्ट ला रहे हैं। उस बिंदु पर, आपके पास एक सामान्य DOM ऑब्जेक्ट है, एक jQuery ऑब्जेक्ट नहीं है और आप सामान्य DOM विधियों या विशेषताओं का उपयोग कर सकते हैं। कभी-कभी यह आवश्यक है (वास्तविक डीओएम ऑब्जेक्ट लाने के लिए), लेकिन आमतौर पर, jQuery ऑब्जेक्ट पर jQuery द्वारा प्रदान की जाने वाली विधियों का उपयोग करना आसान होता है। इनका उपयोग करने के कई फायदे हैं जैसे कि आप अधिकतर तरीकों से एकाधिक अनुरोधों को श्रृंखलाबद्ध कर सकते हैं और यह स्वचालित रूप से आपके आंतरिक सरणी में सभी DOM ऑब्जेक्ट्स पर फिर से सक्रिय हो जाएगा।

उदाहरण के लिए, आपने इसे यह कहा: $j("rows-even").hide() और उस वर्ग के साथ 20 पंक्तियां थीं, तो उनमें से सभी को छुपा() विधि द्वारा संचालित किया जाएगा, इसके अलावा कोई और कोड नहीं होगा। आप इनमें से कई तरीकों को एक साथ जोड़ सकते हैं: $j("rows-even").slideUp().slideDown()। इस मामले में, आप एक एनीमेशन चला रहे हैं और jQuery इन दो एनिमेशनों को एकसाथ चेन करेगा, पहली बार समाप्त होने पर दूसरा स्वचालित रूप से शुरू होगा। यह कई परिस्थितियों में बहुत उपयोगी है और सामान्य जेएस का उपयोग करके सामान्य रूप से लिखे जाने वाले कोड पर एक टन बचा सकता है।

+0

बहुत बढ़िया जवाब, धन्यवाद! – Richard

+0

+1 अच्छा, पूरा जवाब। –

+0

+1 अच्छा जवाब। – Usman

3

$j("#divID")jQuery ऑब्जेक्ट देता है। चयनित तत्व का मूल्य प्राप्त करने के लिए आपको मूल्य प्राप्त करने के लिए val विधि कॉल करना होगा।

उपयोग $j("#divID").val();

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