jQuery /以编程方式在select框中select一个选项

我目前正在使用jQuery来返回一些JSON结果。 一旦这些结果返回,我正在使用它们预填充我的表单中的字段。

不过,我需要一些帮助来预先select下拉框中的项目。 例如,我有一个select框(缩短):

<select id="startTime"> <option value="14:00:00">2:00 pm</option> <option value="15:00:00">3:00 pm</option> <option value="16:00:00">4:00 pm</option> <option value="17:00:00">5:00 pm</option> <option value="18:00:00">6:00 pm</option> </select> 

如果我的JSON值是:

  var start_time = data[0].start // Let's say this is '17:00:00' 

我怎样才能使用jQuery,select值'17:00:00'选项?

  <option value="17:00:00" selected="selected">5:00 pm</option> 

更新:

从jQuery 1.9开始,jQuery已经更新了这个function。 选项的“select”状态实际上是一个属性,因此jQuery已经将其改变为使用.prop()方法。 语法非常相似,易于切换:

 $('#startTime option[value=17:00:00]').prop('selected', true); 

请参阅http://api.jquery.com/prop/#entry-longdesc为什么它需要传递;true


较老的jQuery

 $('#startTime option[value=17:00:00]').attr('selected', 'selected'); 

要么

 $('#startTime option[value='+ data[0].start +']').attr('selected', 'selected'); 
 $('#startTime').val(start_time); 

只是$("#startTime").val(start_time);

UPDATE

从jQuery 1.9开始,jQuery已经更新了这个function。 选项的“select”状态实际上是一个属性,因此jQuery已经将其改变为使用.prop()方法。 语法非常相似,易于切换:

 $('option[value=17:00:00]').prop('selected', 'selected'); 

jquery mobile用户的附加信息(1.3.0):

这里有一个类似的例子 。

如果你用jquery 1.9.1和jquery mobile 1.3.0来试试上面的例子,你可以看到它不工作,除非你添加一个

 $("#location_list").selectmenu("refresh"); 

请记住使用jQuery Mobile时的注意事项。 这给了我很多头痛

由于某种原因,我的作品是这样的:

 $('#startTime').val(''+data[0].start+''); 
 var varValue="17:00:00"; $("#startTime").ready(function(){ $("#startTime option[value='"+varValue+"']").prop("selected", "selected"); }); 

适用于jQuery 1.10