jQuery添加空白选项顶部的列表,并select现有的下拉菜单

所以我有一个下拉列表

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

这是我想要的

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

试图在之前添加一个空白选项并将其设置为此,希望强制用户从原始列表中select一个值,但希望在看到必须select的选项时为空。

尝试这个,但不工作

 // Add blank option var blankOption = {optVal : ''}; $.each(blankOption, function(optVal, text) { $('<option></option>').val(optVal).html(text).preprendTo('#theSelectId'); }); 

我已经尝试过,但清除了其他值

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

这工作:

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

Firebug输出:

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

如果您想颠倒顺序,也可以使用.prependTo

 ​$("<option>", { value: '', selected: true }).prependTo("#theSelectId");​​​​​​​​​​​ 

解决scheme原生Javascript:

document.getElementById("theSelectId").insertBefore(new Option('', ''), document.getElementById("theSelectId").firstChild);

例如: http : //codepen.io/anon/pen/GprybL