JQuery - document.getElementById ("चयन सूची") का उपयोग करके यह कैसे करें। मूल्य


141

JQuery में, इसके बराबर क्या है document.getElementById("selectlist").value?

मैं एक चयनित सूची आइटम का मूल्य प्राप्त करने की कोशिश कर रहा हूं।

धन्यवाद।


10
आपको संभावना कम हो रही है क्योंकि आपके सवालों का जवाब Google पर कुछ ही सेकंड में दिया जा सकता है, या JQuery डॉक्स को पढ़कर।
zombat

53
SO के उपयोगकर्ताओं को बहादुर बनाने के लिए +1 टॉन्सिल। उनका प्रश्न पूरी तरह से मान्य है, भले ही इसे हल करना कितना आसान / कठिन हो। इस विषय पर भविष्य की खोजों के लिए SO को अधिक ट्रैफ़िक।
श्री स्मिथ

7
c'mon लोग - jQuery के वूडू मेरे जैसे एक बूढ़े आदमी के लिए सीखना आसान नहीं है, सर्वर देव जो मैं पिछले 20 वर्षों से कर रहा हूँ - अच्छा हो और हमारे साथ jQuery के नवागंतुकों पर आसान हो! :-)
marc_s

1
@Boekwurm बेन - वह बहादुर हो सकता है, लेकिन आप SO उपयोगकर्ताओं को भी दोष नहीं दे सकते। लोग आमतौर पर सवाल पूछने वाले व्यक्ति द्वारा थोड़ा प्रयास देखना पसंद करते हैं।
ज़ोम्बैट

12
जैसा कि मुझे याद है, यह पहली चीज थी जो मुझे jQuery के बारे में नहीं मिली। मुझे लगता है कि अगर सच कहा जाए तो यह एक वैध सवाल है, और नीचे चिह्नित करना कठोर था। stackoverflow.com/questions/75296/…
जेम्स वाइसमैन

जवाबों:



214

"समतुल्य" यहाँ का शब्द है

जबकि...

$('#selectlist').val();

...के बराबर है...

document.getElementById("selectlist").value

... यह ध्यान देने योग्य है कि ...

$('#selectlist')

... हालाँकि 'समतुल्य' उतना नहीं है ...

document.getElementById("selectlist")

... जैसा कि पूर्व में एक jQuery ऑब्जेक्ट देता है, DOM ऑब्जेक्ट नहीं।

JQuery एक से DOM ऑब्जेक्ट (ओं) को प्राप्त करने के लिए, निम्नलिखित का उपयोग करें:

$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0

1
शायद यहां थोड़ा सा स्पर्शरेखा है, लेकिन यह बहुत अच्छी जानकारी होगी: क्या jQuery एक से DOM ऑब्जेक्ट प्राप्त करने का एक तरीका है? संपादित करें : संपादन में मेरे अपने प्रश्न का उत्तर दिया।
क्लेटन ह्यूजेस

4
मैंने अपने सिर को एक दीवार के खिलाफ एक घंटे तक पीटा जब तक मुझे एहसास नहीं हुआ कि getElementById () को $ () द्वारा प्रतिस्थापित नहीं किया जा सकता है। इस उत्तर के लिए बहुत बहुत धन्यवाद!
Knite

3
@ एकाइट - हाँ। काश मेरे पास कोई होता जो मुझे समझाता था कि मैंने पहली बार jQuery का उपयोग किया है।
जेम्स वाइसमैन

1
जंक्शन वस्तुओं में डोम वस्तुओं को प्राप्त करने के बाद के भाग स्पष्टीकरण के लिए धन्यवाद :)।
kailash19

+1 ओल्डे लेकिन एक गुडी। मैं यह जानने की कोशिश कर रहा था कि Google मैप्स ने DOM ऑब्जेक्ट को क्यों स्वीकार किया लेकिन मेरी jQuery ऑब्जेक्ट को स्वीकार नहीं किया। एक त्वरित Google खोज ने मुझे यहां ले जाया, न कि jQuery डॉक्स के लिए।
टोनीजी

9

कैओस पर हाजिर है, हालांकि इन प्रकार के प्रश्नों के लिए आपको Jquery दस्तावेज़ीकरण ऑनलाइन जांचना चाहिए - यह वास्तव में काफी व्यापक है। आपके बाद की सुविधा को 'jquery चयनकर्ताओं' कहा जाता है

आम तौर पर आप करते हैं $('#ID').val()- बाद में चयनकर्ता से वापस किए गए तत्व पर कई चीजें कर सकते हैं। आप एक निश्चित वर्ग पर सभी तत्वों का चयन कर सकते हैं और उनमें से प्रत्येक के लिए कुछ कर सकते हैं। कुछ अच्छे उदाहरणों के लिए दस्तावेज़ीकरण देखें।


9

यह तीन अलग-अलग तरीकों से किया जा सकता है, हालांकि वे सभी लगभग समान हैं

जावास्क्रिप्ट तरीका है

document.getElementById('test').value

जेकरी रास्ता

$("#test").val()          

$("#test")[0].value             

$("#test").get(0).value

यह सबसे अच्छा जवाब है। धन्यवाद!
कार्टर मेडलिन

2

जो सोच रहे हैं कि अगर jQuery आईडी चयनकर्ता document.getElementById की तुलना में धीमी हैं, तो इसका जवाब हां में है, लेकिन यह नहीं कि पूर्व धारणा के कारण यह एक तत्व की तलाश में पूरे डोम के माध्यम से खोज करता है। jQuery वास्तव में मूल विधि का उपयोग करता है। यह वास्तव में है क्योंकि jQuery के द्वारा जाँच करने के लिए चयनकर्ता में स्ट्रिंग्स को अलग करने के लिए पहले एक नियमित अभिव्यक्ति का उपयोग किया जाता है, और निश्चित रूप से कंस्ट्रक्टर को चलाने के लिए:

rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/

जबकि डोम तत्व का उपयोग तर्क के रूप में 'इस' के साथ तुरंत होता है।

तो यह:

$(document.getElementById('blah')).doSomething();

हमेशा इससे तेज रहेगा:

$('#blah').doSomething();

0

जिनमें से कुछ मामलों में मुझे याद नहीं है कि मैं $('#selectlist').val()हमेशा सही आइटम मान क्यों नहीं लौटाऊंगा , इसलिए मैं $('#selectlist option:selected').val()इसके बजाय उपयोग करता हूं ।


शायद आप कुछ लिंक वापस पोस्ट कर सकते हैं जो इसकी पुष्टि करते हैं। मुझे हालांकि आश्चर्य होगा। यह jQuery में एक मौलिक बग होगा। क्या यह संभव है कि आप पुस्तकालय के एक छोटी गाड़ी संस्करण का उपयोग कर रहे हैं?
जेम्स वाइसमैन

जेम्स हो सकता था, मुझे लगता है कि यह 1.3.0 में हो सकता था, 1.3.2 में repro नहीं लग सकता है, लेकिन यह IE6 या 7 में भी हो सकता है जिसे मैंने अब तक स्थापित नहीं किया है, मैं देखूंगा अगर मैं मूल कारण का पता लगा सकता हूं और यहां रिपोर्ट कर सकता हूं।
ब्रेट रायन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.