JQuery में $ (यह) चयनित विकल्प कैसे प्राप्त करें?


91

निम्नलिखित कोड काम करता है:

$("#select-id").change(function(){
  var cur_value = $('#select-id option:selected').text();
  . . .
});

दूसरी पंक्ति को कैसे रिफलेक्टर करें:

var cur_value = $(this).***option-selected***.text();

आप किस चीज का उपयोग करते हैं ***option-selected***?

जवाबों:


120

चयनित मूल्य के लिए: $(this).val()

यदि आपको चयनित विकल्प तत्व की आवश्यकता है, $("option:selected", this)


101
 $(this).find('option:selected').text();

यह मेरे लिए पूरी तरह से काम करता है - मैंने $("option:selected", this)ऊपर बताए अनुसार प्रयास किया लेकिन यह समस्याग्रस्त था। मैं किसी अन्य div में चयनित विकल्प तत्व पाठ को जोड़ने के लिए एक बटन क्लिक का उपयोग कर रहा था, लेकिन जब मैंने बटन पर क्लिक किया, तो उसने वास्तव में चयनित तत्व को बदल दिया ... अजीब। इस एक का उपयोग करें।
स्किवेद्रेथ

53

चयनित विकल्प प्राप्त करने के लिए ड्रॉपडाउन की घटनाओं के लिए मेरी राय में सबसे अच्छा और सबसे छोटा तरीका:

$('option:selected',this);

मूल्य विशेषता पाने के लिए:

$('option:selected',this).attr('value');

टैग के बीच दिखाया गया हिस्सा पाने के लिए:

$('option:selected',this).text();

अपने नमूने में:

$("#select-id").change(function(){
  var cur_value = $('option:selected',this).text();
});

उपयोग न करें .context, यह jQuery के 1.10 के बाद से हटा दिया गया है - api.jquery.com/category/deprecated/deprecated-1.10
rafx

हां, लेकिन आपका क्या मतलब है: api.jquery.com/context $ ("ul", document.body) .context.nodeName जिसका मैं उपयोग नहीं करता
एंजेलमिया

1
मुझे उत्तर पसंद है लेकिन यह सबसे अच्छा क्यों है?
सेबास्टियन गिक्वेल 14

39
var cur_value = $('option:selected',this).text();

जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो यहां उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
इनामुल हसन


9

आप findचयनित विकल्प को देखने के लिए उपयोग कर सकते हैं जो वर्तमान jQuery ऑब्जेक्ट द्वारा इंगित नोड (एस) का वंशज है:

var cur_value = $(this).find('option:selected').text();

चूंकि यह संभवतः एक तत्काल बच्चा है, इसलिए मैं .childrenइसके बजाय वास्तव में उपयोग करने का सुझाव दूंगा:

var cur_value = $(this).children('option:selected').text();

7
var cur_value = $(this).find('option:selected').text();

चूंकि आप के optionतत्काल बच्चे होने की संभावना हैselect

var cur_value = $(this).children('option:selected').text();

http://api.jquery.com/find/


आप option-selectedबिना किसी उद्धरण के कहाँ से लाएँगे ...?
प्लैटिनम एज़्योर

जब मैंने पोस्ट किया तो वह एक टाइपो था। जवाब सही दिया।
थोमथोम

find('option:selected')मेरे लिए एक खाली स्ट्रिंग लौटाता है। JQuery के किस संस्करण की आवश्यकता है? मैं 1.6.1 में काम कर रहा हूं। children('option:selected')काम करेगा।
बी सेवन


0

सर्वश्रेष्ठ अनुमान:

var cur_value = $('#select-id').children('option:selected').text();

मुझे इस मामले में बच्चे ज्यादा अच्छे लगते हैं क्योंकि आप जानते हैं कि आप डोम ट्री से केवल एक शाखा नीचे जा रहे हैं ...


हो सकता है कि आपके लिए वास्तव में इसका मतलब var cur_value = $ (यह) था। बच्चों ('विकल्प: चयनित')। पाठ ();
जो जॉनसन

0

यह सिर्फ है

$(this).val();

मुझे लगता है कि jQuery आपको यह जानने के लिए काफी चालाक है कि आपको क्या चाहिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.