2012-04-04 10 views
53

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

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

आप ***option-selected*** के लिए क्या प्रयोग करते हैं:

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

कैसे करें दूसरी पंक्ति refactor करने के लिए?

उत्तर

59
$(this).find('option:selected').text(); 
+0

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

7

यह काम करना चाहिए:

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

उपरोक्त उत्तर –

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

option के बाद से select के तत्काल बच्चे को होने की संभावना है आप भी उपयोग कर सकते हैं:

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

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

+0

कोई उद्धरण के साथ आपको 'विकल्प-चयनित' कहां मिलता है ...? –

+0

विकल्प शून्य का चयन किया गया? –

+0

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

90

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

आप चयनित विकल्प तत्व की जरूरत है, $("option:selected", this)

+1

मेरी समस्या हल हो गई, धन्यवाद @ jorgebg – aiffin

8

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

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

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

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

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

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

मैं बच्चों को इस मामले क्योंकि आप जानते हैं कि आप केवल डोम पेड़ नीचे एक शाखा जा रहे हैं में बेहतर चाहते ...

34

onchange के लिए मेरी राय में सबसे अच्छा और सबसे छोटा रास्ता

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

$('option:selected',this); 

मूल्य विशेषता पाने के लिए: लटकती पर घटनाओं चयनित विकल्प प्राप्त करने के लिए

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

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

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

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

'.context' का उपयोग न करें, इसे तब से हटा दिया गया है http://api.jquery.com/context/ $ (: - jQuery 1.10 http://api.jquery.com/category/deprecated/deprecated-1.10/ – rafx

+0

हाँ, लेकिन क्या आप का मतलब यह है "उल", document.body) .context.nodeName जो मैं – angelmedia

+0

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

19
var cur_value = $('option:selected',this).text(); 
+0

जबकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, [यह बेहतर होगा] (// meta.stackoverflow.com/q/8259) यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और इसके लिए लिंक प्रदान करें संदर्भ। – manetsus

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