Javascript 为什么向select元素动态添加选项会改变其selectedIndex?
简单明了:为什么将选项添加到select元素会改变其selectedIndex,有没有办法:Javascript 为什么向select元素动态添加选项会改变其selectedIndex?,javascript,html,Javascript,Html,简单明了:为什么将选项添加到select元素会改变其selectedIndex,有没有办法: 防止这种行为 发现它 var list=document.getElementById(“list”); list.selectedIndex=-1; 文档。写入(“所选索引:”+列表。所选索引); $(list.append('foo'); 文档。写入(“所选索引:”+列表。所选索引); list.selectedIndex=-1; 文档。写入(“所选索引:”+列表。所选索引) 选择的索引 对
var list=document.getElementById(“list”);
list.selectedIndex=-1;
文档。写入(“所选索引:”+列表。所选索引);
$(list.append('foo');
文档。写入(“所选索引:”+列表。所选索引);
list.selectedIndex=-1;
文档。写入(“所选索引:”+列表。所选索引)代码>
选择的索引
对于正常的选择
,只有在没有要选择的项目时才可能没有选择的项目。添加至少一项后,必须存在选择
但是,如果您有一个选择多个,则该值将被保留
var list=document.getElementById(“list”);
文档。写入(“所选索引:”+列表。所选索引);
$(list.append('foo');
$(list.append('foo');
$(list.append('foo');
文档。写入(“所选索引:”+列表。所选索引)代码>
您可以在添加选项后手动重置,基本上是添加列表。selectedIndex=-1代码>在$(列表)之后。追加('foo')代码>如果只有一个选项怎么办?在哪里<代码>选择
或选择多个
?正如我所说的:在正常的选择
下拉列表中,始终只显示/选择一个选项——除非根本没有选项。@Blazemonger但是,为什么可以通过将selectedIndex设置为-1,在添加选项后清除选择?我已经更新了片段。老实说,我不确定。我所能说的是,你可能无论如何都不应该这么做,因为这只能在JS中实现,而不是通过正常的用户交互。使用选择多个
、单选按钮或选择一个
,如果您需要能够不选择任何选项。当然可以,但如果这是一个选项,我一开始就不会问这个问题:)