空白选项添加到选择顶部,并使其在IE中选择选项

空白选项添加到选择顶部,并使其在IE中选择选项

问题描述:

HTML:空白选项添加到选择顶部,并使其在IE中选择选项

<select id="dropdown"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

的jQuery:

$("#dropdown").prepend("<option value='' selected='selected'></option>"); 

当我在Firefox或Chrome运行此,下拉有新插入的空白选项被选中。当我在IE8中运行它时,它仍然选择了沃尔沃。有任何想法吗?

http://jsfiddle.net/YFu2h/

更改它此,它会工作:

$("#theSelectId").prepend("<option value=''></option>").val(''); 

http://jsfiddle.net/YFu2h/1/

看来,IE只评估selected属性时,第一次遇到select

+0

谢谢,这工作。 – wkm

+0

这将设置val为空。删除我最初拥有的任何选定项目 –

+0

@HarryBosh - ......这正是OP所要求的。 –

尝试:

$("#dropdown").prepend(new Option('', '', true, true)); 
$("#dropdown option:first").attr("selected", "selected"); 

或者,如果你喜欢:

$("#dropdown").prepend("<option value=''></option>"); 
$("#dropdown option:first").attr("selected", "selected"); 

使用第一个选项是稍微更快。空白引号表示空白值和空白文本,因此可以根据需要填写它们。您不需要预先选择的属性,现在我们在之后添加它们。这与Internet Explorer不相关,因为它只是刚创建时才被识别为被选中。

+0

谢谢,这工作。 – wkm

我不知道为什么你的代码不能正常工作(也许它是与事实,即在IE浏览器,selectedIndex是只读的),但是,这样做在IE:

$("#dropdown").prepend("<option value='' selected='selected'></option>"); 
$("#dropdown")[0].options[0].selected = true; 
+0

谢谢,这工作。 – wkm