以编程方式选择第N个选项选择
Programmatically select Nth option select
我有一个填充选择框的脚本。这意味着我不知道该框中的值或数字项。
我想制作另一个脚本,模拟在该框中选择第N个项目的行为。我读了很多遍,不知道该怎么做。我相信有一个简单的选择。
使用selectedIndex
属性:
$('select').prop('selectedIndex', 3);
您可以链接change()
方法来触发任何change()
事件:
代码段:
$('select').change(function() {
console.log('changed');
});
$('select').prop('selectedIndex', 3).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>Not me</option>
<option>Not me</option>
<option>Not me</option>
<option>Select me!</option>
<option>Not me</option>
</select>
您可以使用eq()
方法来选择匹配集中的第N个项目。从那里你可以将option
的selected
属性设置为true
来选择它。试试这个:
$('#mySelect option').eq(2).prop('selected', true).trigger('change');
请注意,给eq()
的索引是基于零的,因此上面将选择第三个option
元素。
还要注意,当您以编程方式选择option
时,不会引发任何事件。如果需要该事件,则需要使用trigger()
手动激发它。
$('#mySelect').change(function(){
var selectedOption = $(this).prop('selected', true)
})
如果您已经将select元素作为对象或循环。
$('select').each(function() {
if( /*Some Filter*/ ){
$(this).val($(this).find('option').eq(2).val()).trigger('change');
}
});
它对我有效。
在Chrome和IE上测试。
$('select').change(function() {
console.log('changed');
});
$('select').prop('selectedIndex', 3).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>Not me</option>
<option>Not me</option>
<option>Not me</option>
<option>Select me!</option>
<option>Not me</option>
</select>
相关文章:
- CKeditor:更改对话框中的默认选择选项
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- AngularJs列表ng单击以选择选项转换
- 使用基于文本的 Jquery 选择选项
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 选择选项时如何显示警报
- 使用php动态更改选择选项
- 选择“选择选项”时显示文本.怎么做
- LEAFLET地图和带有选择选项的标记-ANGULARjs
- 使用js将动态内容添加到选择选项列表中
- 用于使用javascript循环选择选项
- AngularJS-选择选项并在函数中使用它
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 如何使用jQuery隐藏与选择选项相关的选择选项列表
- 选择选项是添加或删除事件
- 使用jQuery向“选择选项”添加默认属性
- 构建HTML选择字段并使用JavaScript数组选择选项
- 带有动态选择选项的Firefox html5验证异常
- 只有当Angular从资源对象检索数据时,才选择选项元素