javascript jQuery विशिष्ट विकल्प टैग पाठ मिलता है




drop-down-menu jquery-selectors (16)

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

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

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

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

मैं $('#list option:selected").each() को छोड़कर मुझे चुनिंदा तत्व से सामान लेने की आवश्यकता होती है।

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

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

जब मैं मूल्य '2' प्राप्त करता हूं तो मैं "विकल्प बी" प्राप्त करना चाहता हूं तो चयनकर्ता कैसा दिखता है?

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

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

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


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

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

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

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

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


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

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

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

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

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

मैं चुनिंदा एकाधिक के लिए एक गतिशील संस्करण चाहता था जो दाईं ओर चुने गए को प्रदर्शित करेगा (इच्छा है कि मैं $(this).find पढ़ और देख $(this).find$(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>

उपयोग:

function selected_state(){
    jQuery("#list option").each(function(){
        if(jQuery(this).val() == "2"){
            jQuery(this).attr("selected","selected");
            return false;
        }
    });
}

jQuery(document).ready(function(){
    selected_state();
});

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

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

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

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

जैसा कि jQuery में उल्लिखित विशिष्ट विकल्प टैग टेक्स्ट मिलता है और गतिशील गति को मान में रखता है


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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


एक वैकल्पिक समाधान के रूप में, आप ड्रॉपडाउन सूची के अंदर <option> तत्व (ओं) के साथ value="2" ढूंढने के लिए jQuery चयनकर्ता के संदर्भ भाग का भी उपयोग कर सकते हैं:

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

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

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


मुझे इस जवाब की आवश्यकता थी क्योंकि मैं गतिशील रूप से कास्ट ऑब्जेक्ट से निपट रहा था, और यहां अन्य विधियां काम नहीं कर रही थीं:

element.options[element.selectedIndex].text

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





jquery-selectors