jQuery选择框.val(”)行为从1.9到1.10+不同,最简单的方法是什么

以下jQuery 1.9和1.10+之间的行为有所不同:

 1 2 3  $('#s1 option[value=1]').hide(); $('#s1').val(''); 

这段代码背后的想法是选择第一个选项。

在1.10之后, $('#s1').val(''); 部分不再以相同的方式工作。 我认为它从来没有意味着以这种方式使用,但它的旧代码必须以某种方式进行现代化……

在jQuery 1.10之后没有选择任何东西和$('#s1').val()返回null

将代码更改为:

 $('#s1 option[value=1]').hide(); $('#s1').val($('#s1 option').first().val()); 

是否有新的和旧的jQuery版本的工作。

我的问题是,是否有更短/更优雅的方式来做同样的事情?

 $("#s1")[0].selectedIndex = 0; 

如果你真的喜欢jQuery,你也可以这样做:

 $("#s1").prop("selectedIndex", 0); 

更多信息: https : //stackoverflow.com/a/1314266/283863

只是不要设置它自动选择第一个值的值,并在两个版本中都有效:

 $('#s1 option[value=1]').remove(); //$('#s1').val(''); 

演示版:1.9.1和演示版:1.10.1


根据您的更新和评论,您可以这样使用:

 $('#s1 option[value=1]').hide(); $('#s1 option[value=2]').hide(); $('#s1 option:visible').first().attr('selected', 'selected'); 

演示