我正在尝试查找并设置页面上许多选择框的第一个选项。
$('ul#mygroup li select').each(function () {
$(this +' option:nth-child(0)').attr('selected', 'selected');
});
第二行是失败的地方。我似乎无法定位组中每个选择框的第一个选项。
答案 0 :(得分:5)
您不需要.each()
;这样做:
$('#mygroup li select option:first-of-type').prop('selected', true);
答案 1 :(得分:3)
你在滥用选择器。
您需要撰写$(this).children('option:first-child').attr('selected', true)
。
您也可以写$('ul#mygroup li select').prop('selectedIndex', 0)
。
答案 2 :(得分:2)
你不应该联合this
,你应该将它用于范围。
$('option:first',this).attr('selected','selected');
或者,简明扼要地说(保持在.each
循环中)
$(this).find('option:first').attr('selected','selected');
尽管正如其他人所说,但没有必要使用.each
。事实上,nth-child
专门用于避免使用.each
答案 3 :(得分:1)
尝试:
$('ul#mygroup li select').each(function () {
$(this).children('option').first().attr('selected', 'selected');
});
答案 4 :(得分:0)
希望这对你有用。
<select name="type1">
<option value="1">Option 1</value>
<option value="2">Option 2</value>
<option value="3">Option 3</value>
</select>
<select name="type2">
<option value="1">Option 1</value>
<option value="2">Option 2</value>
<option value="3">Option 3</value>
</select>
<select name="type3">
<option value="1">Option 1</value>
<option value="2">Option 2</value>
<option value="3">Option 3</value>
</select>
$(function(){
$('select').each(function () {
$(this).children().first().attr('selected', 'selected');
$(this).children().first().attr('style', 'color: blue');
});
});