选择第一个项目

选择第一个项目

问题描述:

如何始终使用索引选择HTML选择框中的第一个项目?我不想用val()来选择。选择第一个项目

您可以使用:first选择:是选择

var firstOption = $('#selectId option:first'); 

然后你就可以得到由firstOption.val();选项值或firstOption.text();

选项的文本,并将其设置:

//firstOption.prop('selected', true); since jQuery 1.6 is known to be faster way 
firstOption.attr('selected', true); 

编辑:如果你想要的唯一一件事就是选择的选项设置,使用selectedIndex特性:( '选择', '选择')

$('#selectId').attr('selectedIndex', 0); 
+2

我检查并发现另一种方法是做$(“#select1”)。get(0).selectedIndex = 0;这也是推荐的方式吗? – KJai

+1

这也可以。我不能肯定地说,但我会猜测'$(“#select”)。get(0).selextedIndex = 0'的开销比CMS的替代品少,因为前者只需要jQuery来查找select然后通过DOM直接设置其选定项目,而不是找到选择,然后获取其选项,然后选择第一个选项,然后最终设置其选定的属性。设置selectedIndex比较直接,因为它不依赖于抽象层。任何人都在意确认或否认? –

+0

@Nathan:同意,我用过:第一,因为我不确定OP是否想要获得关于第一个选项的信息。但是肯定的是,如果用户只想改变选定的索引,那就是要走的路。 – CMS

$('select option:first').get(0).select(); 

或:

$('select option:first').attr('selected','selected'); 

假设由选择你的意思是使第一个选项中选择一个

Selectors/first

$("select option:first").attr('selected','selected'); 

ATTR;

误解了jQuery做了些什么。 attr设置DOM属性,而不是HTML属性值;实际上,设置selectedHTML属性不一定会改变选项的选择性,因为该属性仅控制字段的默认状态。 (由于bug而在IE中除外)。

attr('selected', true)会更合适。但是,由于任何非空字符串在布尔上下文中的计算结果为true,上述内容仍然有效。

无论如何......有时最好使用普通的DOM属性,而不是强迫所有东西进入由jQuery提供的操作集。 jQuery应该是JS和DOM的补充,而不是完全替代它。您在评论中建议:

$('#select1').get(0).selectedIndex= 0; 

是选择第一个选项IMO更自然的方式,而且比要求jQuery的解析和执行选择快得多