从以下标记中,我想获得选项a1,(all)和a。我使用$("option:first-child")
,直到我将optgroup
添加到某些选项中。现在该代码选择a1,b1,(all),1,3和a。
<select>
<optgroup label="a">
<option>a1</option>
<option>a2</option>
</optgroup>
<optgroup label="b">
<option>b1</option>
<option>b2</option>
</optgroup>
</select>
<select>
<option>(all)</option>
<optgroup label="a">
<option>1</option>
<option>2</option>
</optgroup>
<optgroup label="b">
<option>3</option>
<option>4</option>
</optgroup>
</select>
<select>
<option>a</option>
<option>b</option>
<option>c</option>
</select>
答案 0 :(得分:3)
$("select > option:first-child, optgroup:first-child > option:first-child")
第一部分将获得option
的第一个select
而没有optgroup
。第二个获得第一个option
的第一个optgroup
。
虽然我对您的原始示例感到有些困惑,因为我认为在这种情况下您不会得到a
,因为第一个选项是(all)
选项,而不是a
。
答案 1 :(得分:2)
这将选择a1,(all)和a:
$('select').find('option:first').each( function(ix) { alert(this.text); } );
实际上,这将始终在每个选择中选择第一个选项。
答案 2 :(得分:0)
我认为这应该适合你:
$('optgroup.a > option:first-child, select > option:first-child')
您选择select
option
的{{1}}的第一个孩子,此外,专门选择optgroup
的第一个孩子,其中a
为option
{{1}}。
答案 3 :(得分:0)
试试这个:
$('select optgroup[label]["a"] option:eq(0),select:eq(1) option:eq(0)').attr('selected', 'selected');
演示: 访问:http://jsfiddle.net/wBW4N/ 并检查选择框