चयनित <विकल्प> के तत्व को <select> तत्व में पुनः प्राप्त करना


156

निम्नलिखित में:

<select id="test">
    <option value="1">Test One</option>
    <option value="2">Test Two</option>
</select>

मैं जावास्क्रिप्ट का उपयोग करके चयनित विकल्प (यानी "टेस्ट वन" या "टेस्ट टू") का पाठ कैसे प्राप्त कर सकता हूं

document.getElementsById('test').selectedValue 1 या 2 देता है, क्या संपत्ति चयनित विकल्प का पाठ लौटाती है?

जवाबों:


258
function getSelectedText(elementId) {
    var elt = document.getElementById(elementId);

    if (elt.selectedIndex == -1)
        return null;

    return elt.options[elt.selectedIndex].text;
}

var text = getSelectedText('test');

हमेशा की तरह शानदार जावास्क्रिप्ट!
15

3
यह उत्तर पुराना है, अच्छा HTML5 वन-लाइनर के लिए नीचे @ davidjb का उत्तर देखें।
क्रिस्टालकेक्स

1
@Christallkeks - एक लाइनर एक अपवाद फेंकता है अगर कुछ भी नहीं चुना जाता है । कम लाइनें हमेशा बेहतर नहीं होती हैं।
शॉन ब्राइट

88

यदि आप jQuery का उपयोग करते हैं तो आप निम्नलिखित कोड लिख सकते हैं:

$("#selectId option:selected").html();

30
चूंकि वह पाठ चाहता है, शायद का उपयोग करने के लिए बेहतर है.text()
Muhd

5
के साथ भ्रमित नहीं होना $("#selectId option[selected]"), जो "चयनित" विशेषता वाले विकल्प का चयन करेगा लेकिन वर्तमान में चयनित नहीं हो सकता है।
मौवल्कर

अधिक जटिल लगता है।
NDEthos


29

HTML5 के तहत आप ऐसा करने में सक्षम हैं:

document.getElementById('test').selectedOptions[0].text

Https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/selectedOptions पर MDN का दस्तावेज़ Chrome, फ़ायरफ़ॉक्स, एज और मोबाइल ब्राउज़रों सहित पूर्ण क्रॉस-ब्राउज़र समर्थन (कम से कम दिसंबर 2017 तक) इंगित करता है। , लेकिन इंटरनेट एक्सप्लोरर को छोड़कर।


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

28
selectElement.options[selectElement.selectedIndex].text;

संदर्भ:


@Wormhit ने जो जवाब दिया, उससे आसान समझना। सरल बनाने के लिए +1
जैक्स मैथ्यू

7

optionsप्रॉपर्टी वाला सब <options>- आप पर वहाँ से देख सकते हैं.text

document.getElementById('test').options[0].text == 'Text One'

6

आप selectedIndexवर्तमान चयनित को पुनः प्राप्त करने के लिए उपयोग कर सकते हैं option:

el = document.getElementById('elemId')
selectedText = el.options[el.selectedIndex].text


2

यदि आपको यह धागा मिल गया है और जानना चाहते हैं कि चयनित विकल्प पाठ को कैसे प्राप्त किया जा सकता है, तो यह नमूना कोड है:

alert(event.target.options[event.target.selectedIndex].text);

1

अपने स्वयं के चयनित विकल्प सूचकांक की पहचान करने के लिए, चयन सूची ऑब्जेक्ट का उपयोग करें। वहां से - उस सूचकांक के आंतरिक HTML को पकड़ो। और अब आपके पास उस विकल्प का टेक्स्ट स्ट्रिंग है।

<select onchange="alert(this.options[this.selectedIndex].innerHTML);">
       <option value="">Select Actions</option>
       <option value="1">Print PDF</option>
       <option value="2">Send Message</option>
       <option value="3">Request Review</option>
       <option value="4">Other Possible Actions</option>
    </select>

कुछ स्पष्टीकरण जोड़ें
HaveNoDisplayName

.innerHTMLसभी बच्चों और उनकी विशेषताओं को प्राप्त करता है। जब भी यह काम करता है जब किसी तत्व के बच्चे नहीं होते हैं, यदि आपके पास ऐसे बच्चों के साथ एक तत्व है, जो इरादा से अधिक रिटर्न देता है।
hipkiss

1
आपके "विकल्प" बच्चों के बीच कितने "बच्चे" होने की उम्मीद है? </ विकल्प> टैग?
क्रीपरस्टैनसन 16

0

सीधे jQuery के बिना @artur के समान, सादे जावास्क्रिप्ट के साथ:

// शॉन-ब्राइट "एल्ट" वैरिएबल का उपयोग करना

var selection=elt.options[elt.selectedIndex].innerHTML;

0

आसान, सरल तरीका:

const select = document.getElementById('selectID');
const selectedOption = [...select.options].find(option => option.selected).text;

1
हालांकि यह कोड स्निपेट समस्या को हल कर सकता है, लेकिन यह यह नहीं समझाता है कि यह प्रश्न का उत्तर क्यों या कैसे देता है। कृपया अपने कोड के लिए एक स्पष्टीकरण शामिल करें , क्योंकि यह वास्तव में आपके पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और उन लोगों को आपके कोड सुझाव के कारणों का पता नहीं चल सकता है।
लुका कीबेल

मैं नहीं देखता कि यह कैसे आसान या सरल है। find()जब आप पहले से ही चयनित वस्तु के सूचकांक को जानते हैं तो आप इसका उपयोग क्यों करेंगे ? इसके अलावा, अगर कोई चयनित आइटम नहीं है ( <select multiple>), तो यह एक त्रुटि उत्पन्न करेगा।
शॉन ब्राइट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.