<Select> विकल्पों के माध्यम से Iterate करें


202

मेरे पास <select>HTML में एक तत्व है। यह तत्व ड्रॉप डाउन सूची का प्रतिनिधित्व करता है। मैं यह समझने की कोशिश कर रहा हूं कि <select>JQuery के माध्यम से तत्व में विकल्पों के माध्यम से पुनरावृति कैसे करें ।

मैं एक <select>तत्व में प्रत्येक विकल्प के मूल्य और पाठ को प्रदर्शित करने के लिए JQuery का उपयोग कैसे करूं ? मैं उन्हें केवल एक alert()बॉक्स में प्रदर्शित करना चाहता हूं ।

जवाबों:


346
$("#selectId > option").each(function() {
    alert(this.text + ' ' + this.value);
});

2
यह अजीब है, यह काम करना चाहिए लेकिन किसी कारण से यह मेरे लिए नहीं है ... :(
SublymeRick

14
यह इसके बजाय $ (यह) .val () होना चाहिए। जैसा कि IT ppl ने कहा है।
थिहरा

केवल IT ppl के जवाब ने मेरे लिए काम किया (और यह सिर्फ "यह" नहीं था)
user984003

1
यह क्रमशः मूल्य और पाठ पाने के लिए $ (यह) .val () और $ (यह) .text () होना चाहिए
अमित भगत

5
@AmitKB - पाठ और मूल्यों को निकालने के लिए देशी डोम विधि का उपयोग करना बेहतर है। 1) यह छोटा है 2) दो नए jQuery वस्तुओं के निर्माण से बचा जाता है।
करीम k३

79

इसने मेरे लिए काम किया

$(function() {
    $("#select option").each(function(i){
        alert($(this).text() + " : " + $(this).val());
    });
});

5
यदि आप $(this)एक चर में संग्रहीत करते हैं , तो यह अधिक कुशल होगा, अर्थातvar $this = $(this); $this.text(); $this.val();...etc.
लियाम

25

सूचकांक और तत्व के साथ प्रत्येक का उपयोग कर सकते हैं।

$('#selectIntegrationConf').find('option').each(function(index,element){
 console.log(index);
 console.log(element.value);
 console.log(element.text);
 });

// यह भी काम करेगा

$('#selectIntegrationConf option').each(function(index,element){
 console.log(index);
 console.log(element.value);
 console.log(element.text);
 });

17

और अनुयायियों के लिए अपेक्षित, गैर- jquery तरीका, क्योंकि Google लगता है कि सभी को यहाँ भेजते हैं:

  var select = document.getElementById("select_id");
  for (var i = 0; i < select.length; i++){
    var option = select.options[i];
    // now have option.text, option.value
  }

4

आप भी इस तरह की कोशिश कर सकते हैं।

आपका HTMLकोड

<select id="mySelectionBox">
    <option value="hello">Foo</option>
    <option value="hello1">Foo1</option>
    <option value="hello2">Foo2</option>
    <option value="hello3">Foo3</option>
</select>

आप JQueryकोड

$("#mySelectionBox option").each(function() {
    alert(this.text + ' ' + this.value);
});

या

var select =  $('#mySelectionBox')[0];

  for (var i = 0; i < select.length; i++){
    var option = select.options[i];
    alert (option.text + ' ' + option.value);
  }


1

यदि आप Jquery नहीं चाहते (और ES6 का उपयोग कर सकते हैं)

for (const option of document.getElementById('mySelect')) {
  console.log(option);
}

कोड केवल उत्तर हतोत्साहित करते हैं। कृपया कुछ स्पष्टीकरण जोड़ें कि यह समस्या को कैसे हल करता है, या यह मौजूदा उत्तरों से कैसे भिन्न है। समीक्षा से
निक

1

JQuery के बिना पहले से प्रस्तावित उत्तरों पर एक और भिन्नता।

Object.values(document.getElementById('mySelect').options).forEach(option => alert(option))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.