jQuery按值select选项元素

我有一个由span元素包装的select元素。 我不被允许使用selectID,但我被允许使用span id。 我正在尝试编写一个javascript / jquery函数,其中input是一个数字我是select的选项的值之一。 该function将相关选项转为选中状态。

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

谢谢!

以下是清晰select器的最简单解决scheme:

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

只需在$(选项)中包装你的选项,使其按照你想要的方式行事。 你也可以通过做的代码缩短代码

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

使用jQuery> 1.6.1应该更好地使用这个语法:

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

这里是小提琴http://jsfiddle.net/hRFYF/

要得到这个值就只用这个:

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

这将获取值

您可以使用.val()来select值,如下所示:

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

这是一个jsfiddle: https ://jsfiddle.net/tweissin/uscq42xh/8/

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