jQuery के मूल्य के आधार पर विकल्प तत्वों का चयन करें


89

मेरे पास एक स्पैन एलिमेंट है जिसे स्पैन एलिमेंट द्वारा लपेटा गया है। मुझे चुनिंदा आईडी का उपयोग करने की अनुमति नहीं है, लेकिन मुझे स्पान आईडी का उपयोग करने की अनुमति है। मैं एक जावास्क्रिप्ट / jquery फ़ंक्शन लिखने की कोशिश कर रहा हूं जिसमें इनपुट एक नंबर i है, जो कि चयन के विकल्पों में से एक है। फ़ंक्शन प्रासंगिक विकल्प को चयनित में बदल देगा।

<span id="span_id">
    <select id="h273yrjdfhgsfyiruwyiywer" multiple="multiple">
        <option value="1">cleaning</option>
        <option value="2">food-2</option>
        <option value="3">toilet</option>
        <option value="4">baby</option>
        <option value="6">knick-knacks</option>
        <option value="9">junk-2</option>
        <option value="10">cosmetics</option>
    </select>
</span>

मैंने कुछ इस प्रकार लिखा (यह पूरी तरह से काम नहीं करता है, यही कारण है कि मैं इस प्रश्न को पोस्ट कर रहा हूं):

function select_option(i) {

    options = $('#span_id').children('select').children('option');
    //alert(options.length); //7
    //alert(options[0]); //[object HTMLOptionElement]
    //alert(options[0].val()); //not a jquery element
    //alert(options[0].value); //1

    //the following does not seem to work since the elements of options are DOM ones not jquery's
    option = options.find("[value='" + i + "']");
    //alert(option.attr("value")); //undefined
    option.attr('selected', 'selected');

}

धन्यवाद!

जवाबों:


148

यहाँ स्पष्ट चयनकर्ता के साथ सबसे सरल समाधान है:

function select_option(i) {
  return $('span#span_id select option[value="' + i + '"]').html();
}

32

इस सिंटैक्स का उपयोग करने के लिए jQuery> 1.6.1 के साथ बेहतर होना चाहिए:

$('#span_id select option[value="' + some_value + '"]').prop('selected', true);

29

बस अपने विकल्प को $ (विकल्प) में लपेटें ताकि यह उस तरह से कार्य कर सके जैसा आप चाहते हैं। आप कोड को कम करके भी बना सकते हैं

$('#span_id > select > option[value="input your i here"]').attr("selected", "selected")


6

आप .val () का उपयोग कर सकते हैं, निम्न की तरह मूल्य का चयन करें:

function select_option(i) {
    $("#span_id select").val(i);
}

यहाँ एक jsfiddle है: https://jsfiddle.net/tweissin/uscq42xh/8/


किस ब्राउज़र / प्लेटफ़ॉर्म पर यह आपके लिए काम नहीं कर रहा था? मैक / क्रोम पर, यह सफलतापूर्वक सूची में एक आइटम का चयन करता है, जो वास्तव में मूल प्रश्न था।
टॉम

@ श्री ललमा, आपने सवाल गलत समझा हो सकता है। @ टॉम कोड क्या कहा गया था करता है: मान दिया i, ith चयन optionमें select। ओपी विकल्पों को छानने की कोशिश नहीं कर रहा था।
पॉल

4

मान प्राप्त करने के लिए बस इसका उपयोग करें:

<select id ="ari_select" onchange = "getvalue()">
<option value = "1"></option>
<option value = "2"></option>
<option value = "3"></option>
<option value = "4"></option>
</select>

<script>
function getvalue()
{
    alert($("#ari_select option:selected").val()); 
}
</script>

इससे मूल्य प्राप्त होंगे


1
function select_option(index)
{
    var optwewant;
    for (opts in $('#span_id').children('select'))
    {
        if (opts.value() = index)
        {
            optwewant = opts;
            break;
        }
    }
    alert (optwewant);
}

धन्यवाद! मुझे नहीं पता कि jQuery का आंतरिक कार्यान्वयन क्या है, लेकिन अन्य समाधान सरल दिखते हैं।
सप्त

यदि आपके पास पहले से ही jQuery है जो आसान हैं, लेकिन मुझे लगा कि आप इसे करने का एक शुद्ध js तरीका जानना चाहते हैं।
होगन

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