2011-12-09 64 views

回答

5

如果檢查$("option:first-child").length的價值,你會發現,它是5:first-child是選擇是它們的父的第一個子選項,它們是:

<SELECT id='a'> 
    <OPTION selected value=0>(all)</OPTION><!-- THIS ONE --> 
    <OPTION value=1>A</OPTION> 
    <OPTION value=2>B</OPTION> 
    <OPTION value=3>C</OPTION> 
</SELECT> 

<SELECT id='b'>  
    <OPTION selected value=0>(all)</OPTION><!-- THIS ONE --> 
    <optgroup label="A"> 
     <OPTION value=1>A</OPTION><!-- THIS ONE --> 
    </optgroup> 
    <optgroup label="B"> 
     <OPTION value=2>B</OPTION><!-- THIS ONE --> 
    </optgroup> 
    <optgroup label="C"> 
     <OPTION value=3>C</OPTION><!-- THIS ONE --> 
    </optgroup> 
</SELECT> 

此外$("select:eq(1) option:first-child").length等於4用於上述相同的理由。在數組上調用.val()會輸出第一個元素值,但是選擇器正在選擇它們的全部4個。


如果你想在每select寫入選擇的第一要素:

$("select").find("option:first").attr("selected", true); 

工作示例:http://jsfiddle.net/hunter/7J2Yb/2/

+0

精氨酸!我知道'val()'返回第一個值。大腦放屁告訴我,.attr(「選定」)也是設置第一個的值。愚蠢的屁。謝謝! – Homer

相關問題