jQuery को विशिष्ट विकल्प टैग टेक्स्ट मिलता है


1234

सब ठीक है, कहो मेरे पास यह है:

<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

यदि मैं '2' का मान रखता हूं, तो मैं चयनकर्ता को "विकल्प B" प्राप्त करना चाहता हूं, तो क्या होगा?

कृपया ध्यान दें कि यह नहीं पूछ रहा है कि चयनित पाठ मान कैसे प्राप्त किया जाए , लेकिन उनमें से कोई भी एक, चाहे वह मूल्य विशेषता के आधार पर चुना गया हो या नहीं। मैंने कोशिश की:

$("#list[value='2']").text();

लेकिन यह काम नहीं कर रहा है।


समय की इस अवधि के लिए, का उपयोग करें:$("#list option").filter(function () { return $(this).html() == "stuff"; }).val();
12:15

जवाबों:


1122

यह आईडी वाले तत्व की तलाश में है listजिसके पास एक संपत्ति valueहै 2
क्या आप चाहते हैं है optionकी बच्चे list:

$("#list option[value='2']").text()

4
इस नीक के लिए धन्यवाद। यदि आप मूल्य को गतिशील रूप से प्राप्त करना चाहते हैं तो यहां इस उत्तर का विस्तार किया गया है: var selectValue = document.getElementById ('list') मान; var selectOption = $ ("# सूची विकल्प [value =" + selectValue + "]") पाठ) (); /// अच्छा उदाहरण nickf।
केविन फ्लोरिडा

283
@ केविन, उस स्थिति में, आप नीचे दिए गए उत्तर का उपयोग करना चाह सकते हैं। $('#list option:selected').text()
आला 10

6
@nickf, और अधिक सरल,$('#list').val()
डेरेक 功夫 功夫 '

36
@ डेरेक, वैल () विकल्प का पाठ नहीं देगा, यह इसका मूल्य देगा, जो कुछ मामलों में (कई मैं कहने की हिम्मत करता हूं) समान नहीं है।
itsmequinn

आप हमेशा का उपयोग करना चाहिए .trim()के बाद .text()के बाद से कुछ ब्राउज़र कुछ रिक्त स्थान से पहले और पाठ कि उपयोगकर्ता के लिए अदृश्य हैं, लेकिन गलत मान रही को जन्म दे सकती के बाद कभी कभी जोड़ सकते हैं$("#list option[value='2']").text().trim()
हसन ALAMI

1262

यदि आप 2 के मान के साथ विकल्प प्राप्त करना चाहते हैं, तो उपयोग करें

$("#list option[value='2']").text();

यदि आप वर्तमान में जो भी विकल्प चुनना चाहते हैं, उसका उपयोग करें

$("#list option:selected").text();

11
पाठ के बजाय मान प्राप्त करने के लिए, आपको लिखना होगा: - $ ("# सूची का चयन करें")। वैल (); मुझे पता है कि यह पूछे गए सवाल का वास्तविक जवाब नहीं है, लेकिन फिर भी Google के माध्यम से आने वाले newbies के लिए इस बिंदु का उल्लेख करने के बारे में सोचा।
ज्ञान क्रेविंग

मैं $ ("# सूची विकल्प: चयनित") का उपयोग करता हूं। पाठ () और $ ("# सूची विकल्प: चयनित")।
Attr

चयनित पाठ प्राप्त करने के लिए (भले ही प्रश्न उस विशेष रूप से नहीं पूछा गया था), यह विधि यह जानने के लिए श्रेष्ठ है कि चयनित मान क्या है।
theJerm

132

यह मेरे लिए पूरी तरह से काम करता है, मैं MySQL द्वारा उत्पन्न विकल्पों के साथ दो अलग-अलग मूल्यों को भेजने के लिए एक रास्ता तलाश रहा था, और निम्नलिखित सामान्य और गतिशील है:

$(this).find("option:selected").text();

जैसा कि टिप्पणियों में से एक में उल्लेख किया गया है। इसके साथ मैं एक गतिशील फ़ंक्शन बनाने में सक्षम था जो मेरे सभी चयन बॉक्स के साथ काम करता है जिसे मैं दोनों मान, विकल्प मान और पाठ प्राप्त करना चाहता हूं।

कुछ दिन पहले मैंने देखा कि जब मैंने इस कोड का उपयोग करने वाले साइट के 1.6 से 1.9 तक jQuery को अपडेट किया है, तो यह काम करना बंद कर देता है ... शायद कोड के एक और टुकड़े के साथ एक संघर्ष था ... वैसे भी, समाधान विकल्प से हटाना था खोजें () कॉल:

$(this).find(":selected").text();

यह मेरा समाधान था ... इसका उपयोग केवल तभी करें जब आपको अपने jQuery को अपडेट करने के बाद कोई समस्या हो।


2
माना जाता है कि यह वेबस्टॉर्म 8 के अनुसार इसे करने का अधिक कुशल तरीका है।
dbinott

2
हालांकि यह उत्तर व्यावहारिक है और मुझे एक समस्या के साथ मदद की, जो कि मैं कर रहा था, नाइटपिक के लिए, यह ठीक से प्रश्न का उत्तर नहीं देता है: कृपया ध्यान दें कि यह नहीं पूछ रहा है कि चयनित पाठ मान कैसे प्राप्त करें, लेकिन उनमें से किसी एक को, चाहे वह चयनित हो या नहीं, मूल्य विशेषता पर निर्भर करता है।
स्टुबॉर्नशॉयोग

109

पाओलो द्वारा पोस्ट किए गए मूल HTML के आधार पर मैं निम्नलिखित के साथ आया था।

$("#list").change(function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

यह इंटरनेट एक्सप्लोरर और फ़ायरफ़ॉक्स पर काम करने के लिए परीक्षण किया गया है।


11
इसके लिए एक विकल्प है: $ ("विकल्प: चयनित", यह) .text ()
डग एस

यह एक बेहतर उत्तर है क्योंकि यह जटिल परिदृश्यों के लिए है, न केवल स्थिर html और सरल जावास्क्रिप्ट घटनाओं के लिए।
ओस्सिपेटलिंग

37
$("#list option:selected").each(function() {
   alert($(this).text());
});  

#listतत्व में कई चयनित मूल्य के लिए ।


37
  1. यदि पृष्ठ पर केवल एक ही चयनित टैग है तो आप आईडी 'सूची' के अंदर का चयन कर सकते हैं

    jQuery("select option[value=2]").text();
  2. चयनित पाठ प्राप्त करने के लिए

    jQuery("select option:selected").text();

24

निम्नलिखित आज़माएँ:

$("#list option[value=2]").text();

आपके मूल स्निपेट के काम न करने का कारण यह है कि आपके OPTIONटैग आपके टैग के लिए बच्चे हैं SELECT, जिसमें है id list


19

यह एक पुराना प्रश्न है, जिसे कुछ समय में अपडेट नहीं किया गया है, ऐसा करने का सही तरीका अब उपयोग करना होगा

$("#action").on('change',function() {
    alert($(this).find("option:selected").text()+' clicked!');
});

आशा है कि ये आपकी मदद करेगा :-)


यह निश्चित रूप से सही नहीं है कृपया ध्यान दें कि यह नहीं पूछ रहा है कि चयनित पाठ मान कैसे प्राप्त करें
वेस्ले स्मिथ

17

मैं चयनित लेबल प्राप्त करना चाहता था। इसने मेरे लिए jQuery 1.5.1 में काम किया।

$("#list :selected").text();

17
$(this).children(":selected").text()

Unfortunatelly, यह तब काम नहीं करता है जब आप optgroupअपने बच्चे के रूप में टैग करते हैं selectऔर चयनित विकल्प इस में है optgroup$("#list option:selected").text();जो इस मामले में भी काम करता है का उपयोग करें
MartinM

13
$("#list [value='2']").text();

आईडी चयनकर्ता के बाद एक स्थान छोड़ दें।


13

आप फ़ंक्शन का उपयोग करके चयनित विकल्प पाठ प्राप्त कर सकते हैं .text();

आप इस तरह से फ़ंक्शन को कॉल कर सकते हैं:

jQuery("select option:selected").text();

10

जबकि गतिशील रूप से बनाए गए चुनिंदा तत्वों को एक .each (फंक्शन () ...) के साथ "लूपिंग" किया जाता है: $("option:selected").text();और $(this + " option:selected").text()चयनित विकल्प टेक्स्ट को वापस नहीं किया - इसके बजाय यह अशक्त था।

लेकिन पीटर मोर्टेंसन के समाधान ने काम किया:

$(this).find("option:selected").text();

मुझे नहीं पता कि क्यों सामान्य तरीका .each()(शायद मेरी अपनी गलती) में सफल नहीं होता है , लेकिन धन्यवाद, पीटर। मुझे पता है कि मूल प्रश्न नहीं था, लेकिन "Google के माध्यम से आने वाले newbies के लिए" इसका उल्लेख कर रहा हूं।

मैं तब से शुरू करूंगा $('#list option:selected").each()जब मुझे सिलेक्ट एलिमेंट से सामान हथियाने की जरूरत होगी।



5

मैं आईडी के बजाय आंतरिक क्षेत्र के नाम से वैल प्राप्त करने के लिए देख रहा था और इस पोस्ट के लिए Google से आया था जो मदद करता है लेकिन मुझे जिस समाधान की आवश्यकता है वह नहीं मिला, लेकिन मुझे समाधान मिल गया और यहां यह है:

इसलिए यह SharePoint सूचियों के लिए लंबी आईडी का उपयोग करने के बजाय फ़ील्ड आंतरिक नाम के साथ चयनित मूल्य की तलाश में किसी को मदद कर सकता है:

var e = $('select[title="IntenalFieldName"] option:selected').text(); 

ठोस उपाय। क्षमा करें, यह यहाँ एक गुप्त जगह पर है। आप इस समाधान को प्रदान करने के लिए अधिक प्रमुख स्थान ढूंढना चाह सकते हैं। शायद आप अपने खुद के एक सवाल का जवाब और पूछ सकते हैं?
एंड्रयू Kozak

4

मुझे इस उत्तर की आवश्यकता थी क्योंकि मैं एक गतिशील रूप से डाली गई वस्तु के साथ काम कर रहा था, और यहाँ अन्य तरीके काम नहीं करते थे:

element.options[element.selectedIndex].text

यह बेशक अपने HTML को नोडवैल्यू, चाइल्डनोड्स इत्यादि के साथ पार्स करने के बजाय डोम ऑब्जेक्ट का उपयोग करता है ।


4

एक टिप: यदि आपका मूल्य गतिशील है तो आप नीचे दिए गए कोड का उपयोग कर सकते हैं:

$("#list option[value='"+aDynamicValue+"']").text();

या (बेहतर शैली)

$("#list option").filter(function() {
     return this.value === aDynamicValue;
}).text();

जैसा कि jQuery में बताया गया है कि विशिष्ट विकल्प टैग टेक्स्ट और डायनामिक वैरिएबल को वैल्यू पर रखें



2

मैं चुनिंदा बहु के लिए एक डायनामिक संस्करण चाहता था, जो प्रदर्शित होता है कि क्या सही में चुना गया है (काश मैं इसे पढ़ता और देखा होता $(this).find... पहले):

<script type="text/javascript">
    $(document).ready(function(){
        $("select[showChoices]").each(function(){
            $(this).after("<span id='spn"+$(this).attr('id')+"' style='border:1px solid black;width:100px;float:left;white-space:nowrap;'>&nbsp;</span>");
            doShowSelected($(this).attr('id'));//shows initial selections
        }).change(function(){
            doShowSelected($(this).attr('id'));//as user makes new selections
        });
    });
    function doShowSelected(inId){
        var aryVals=$("#"+inId).val();
        var selText="";
        for(var i=0; i<aryVals.length; i++){
            var o="#"+inId+" option[value='"+aryVals[i]+"']";
            selText+=$(o).text()+"<br>";
        }
        $("#spn"+inId).html(selText);
    }
</script>
<select style="float:left;" multiple="true" id="mySelect" name="mySelect" showChoices="true">
    <option selected="selected" value=1>opt 1</option>
    <option selected="selected" value=2>opt 2</option>
    <option value=3>opt 3</option>
    <option value=4>opt 4</option>
</select>

2

आप निम्न तरीकों में से एक प्राप्त कर सकते हैं

$("#list").find('option').filter('[value=2]').text()

$("#list").find('option[value=2]').text()

$("#list").children('option[value=2]').text()

$("#list option[value='2']").text()

$(function(){    
    
    console.log($("#list").find('option').filter('[value=2]').text());
    console.log($("#list").find('option[value=2]').text());
    console.log($("#list").children('option[value=2]').text());
    console.log($("#list option[value='2']").text());
    
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<select id='list'>
    <option value='1'>Option A</option>
    <option value='2'>Option B</option>
    <option value='3'>Option C</option>
</select>

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