2011-12-09 62 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

相关问题