如何使用getElementById更改选定元素的selectedIndex
How to change the selectedIndex of a select element using getElementById
我想做类似的事情,但我不能这样改变selectedIndex值:
var selected = document.getElementById("state-select");
switch (state) {
case 'VA':
selected.options[selected.selectedIndex] = 0;
break;
case 'NC':
selected.options[selected.selectedIndex] = 1;
break;
case 'SC':
selected.options[selected.selectedIndex] = 2;
break;
}
对于这个目的,你不需要对options
做任何事情,你可以通过直接设置你的选择元素的.selectedIndex
属性来改变所选择的元素:
...
case 'VA':
selected.selectedIndex = 0;
break;
// etc.
(假设这是一个单选择select元素)
我相信如果你设置selectedIndex
为-1,它将不会留下任何选择
switch
语句很酷,但是使用散列来完成这项工作可能更加灵活。如下所示,您可以检查状态是否在散列中,如果是,则使用它。
var selected = document.getElementById("state-select"),
states = { 'VA' : 0,
'NC' : 1,
'SC' : 2
};
// if `state` ( not sure what it is ) is in the hash
if ( states[ state ] !== undefined ) {
//select option based on the hash
selected.selectedIndex = states[ state ];
}
如果你需要select/assign-the-select by value,你可以遍历这些值,或者使用qSA或jQuery或dojo等库来获取它。
<select id="state-select">
<option value="1">NC</option>
<option value="2">SC</option>
</select>
使用jQuery // select SC
$( '#state-select' ).val( 2 );
var sel = document.getElementById( 'state-select' ),
opts = sel.options;
// loop through the options, check the values
for ( var i = 0; i < opts.length; i++ ) {
// assuming 2 would be states[ state ] or whatevs
if ( opts[i] == 2 ) {
// set to this index
sel.selectedIndex = i;
// stop iterating
break;
}
}
尝试:
selected.selectedIndex = [Your index]
或选择。Value = [option Value]
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- 无法从位于隐藏行单元格中的选择元素中获取 selectedIndex
- 如何使用getElementById更改选定元素的selectedIndex
- selectedIndex在firefox中不起作用,它来自于一个数组元素
- 如何使用数组字段设置 .selectedindex 选择元素