2009-07-01 32 views
47

所以我有一個下拉列表jQuery的添加空白選項列表的頂部,使選擇現有的下拉

<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> 

嘗試之前添加一個空白選項並將其設置爲此,希望強制用戶從原始列表中選擇一個值,但希望在看到必須選擇的選項時爲空。

嘗試這一點,但沒有工作

// 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>'); 

回答

112

這工作:

$("#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");​​​​​​​​​​​ 
+0

感謝,認爲我不得不prependTo但這工作很好:) – 2009-07-01 19:38:53

+0

它也可以與prependTo一起使用:$(「」) .prependTo( 「#theSelectId」); – tvanfosson 2009-07-01 19:45:04

1

解決本地JavaScript:

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

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

相關問題