Javascript val(“文本”)未将选项设置为选中状态

Javascript val(“文本”)未将选项设置为选中状态,javascript,jquery,html,jquery-mobile,Javascript,Jquery,Html,Jquery Mobile,我正在尝试使用$'mySel'.val'1.5'更改此选择的值;我发现有几个地方建议这样做。但出于某种原因,它似乎不起作用,而是选择了第一个选项0.5。有人知道为什么这样不行吗?或者什么可以替代?这是我正在使用的代码 $('#mySel').val('1.5'); $('#courseset').trigger('create'); <select name="hours" id="mySel" data-mini="true" > <option value="0.5

我正在尝试使用$'mySel'.val'1.5'更改此选择的值;我发现有几个地方建议这样做。但出于某种原因,它似乎不起作用,而是选择了第一个选项0.5。有人知道为什么这样不行吗?或者什么可以替代?这是我正在使用的代码

$('#mySel').val('1.5');
$('#courseset').trigger('create');

<select name="hours" id="mySel" data-mini="true" >
   <option value="0.5" >0.5</option>
   <option value="1.0" >1.0</option>
   <option value="1.5" >1.5</option>
   <option value="2.0" >2.0</option>
   <option value="2.5" >2.5</option>
   <option value="3.0" >3.0</option>
   <option value="3.5" >3.5</option>
   <option value="4.0" >4.0</option>
   <option value="4.5" >4.5</option>
   <option value="5.0" >5.0</option>
   <option value="5.5" >5.5</option>
   <option value="6.0" >6.0</option>
   <option value="6.5" >6.5</option>
   <option value="7.0" >7.0</option>
   <option value="7.5" >7.5</option>
   <option value="8.0" >8.0</option>
   <option value="8.5" >8.5</option>
   <option value="9.0" >9.0</option>
   <option value="9.5" >9.5</option>
   <option value="10.0" >10.0</option>
   <option value="10.5" >10.5</option>
   <option value="11.0" >11.0</option>
   <option value="11.5" >11.5</option>
   <option value="12.0" >12.0</option>
</select>

尝试使用。属性已选定,已选定

您还可以使用第n个子项选择该选项,在您的情况下,您可以尝试以下操作:

$("#mySel :nth-child(3)").attr('selected', 'selected'); //selected option value=1.5

这应该与选项字段匹配,而不知道它在DOM中的位置

$('#mySel option[value="1.5"]').attr('selected', 'selected');

你不是在试着选择一个选项吗?否则,这里有一个类似的情况,这对我来说很有效too@Vega我已经检查了错误控制台,它没有给出任何错误。是否有可能来自jquery mobile或其他什么的错误?这是$'mySel'.val'1.5';像$function{$'mySel.val'1.5';};一样包装在DOM ready中;。只有当mySel存在于DOM.或jquerymobile的等价物中(如pageinit等)时,该行才会起作用:。为什么不只是.val?瓦尔处理得很好。@Vega:是的,应该。但是它对OP不起作用,你知道原因吗?顺便说一句,这段代码确实是按文本内容选择选项,而不是按值选择选项。只有在未选择任何内容的情况下才会选择该选项。这不是根据我自己的测试。如果确实存在此问题,则只需第一个$'mySel option'。removeAttr'selected'即可重置所有选项否,原因是[un]设置属性没有帮助,它只会更改defaultSelected属性。使用.propselected,true而不是true,那么可能浏览器不一致。我使用的是Chrome浏览器,它运行得很好。可能还取决于jQuery版本。使用一个能正确区分.prop和.attr的。Chrome确实正确地实现了defaultChecked属性。仅当未选择任何内容时,才会选择该选项。
$('#mySel option[value="1.5"]').attr('selected', 'selected');