Saltar al contenido

javascript – jQuery seleccionar elementos de opción por valor

octubre 20, 2021
apple touch icon@2

Tengo un elemento de selección envuelto por un elemento de intervalo. No se me permite usar la identificación de selección, pero se me permite usar la identificación de intervalo. Estoy tratando de escribir una función javascript / jquery en la que la entrada es un número i, que es uno de los valores de las opciones de selección. La función cambiará la opción correspondiente a seleccionada.

<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>

Escribí algo de la siguiente manera (esto no funciona completamente, por eso estoy publicando esta pregunta):

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');

}

¡Gracias!

close