我正試圖找到並設置頁面上的許多選擇框的第一個選項。jQuery,.each()和兒童
$('ul#mygroup li select').each(function() {
$(this +' option:nth-child(0)').attr('selected', 'selected');
});
第二行是失敗的地方。我似乎無法定位組中每個選擇框的第一個選項。
我正試圖找到並設置頁面上的許多選擇框的第一個選項。jQuery,.each()和兒童
$('ul#mygroup li select').each(function() {
$(this +' option:nth-child(0)').attr('selected', 'selected');
});
第二行是失敗的地方。我似乎無法定位組中每個選擇框的第一個選項。
你不需要.each()
;只是這樣做:
$('#mygroup li select option:first-of-type').prop('selected', true);
你濫用選擇器。您需要編寫$(this).children('option:first-child').attr('selected', true)
。
您也可以直接寫$('ul#mygroup li select').prop('selectedIndex', 0)
。
你不應該串聯this
,你應該使用它的範圍。
$('option:first',this).attr('selected','selected');
或者,簡潔你說(保持它的.each
環路內)
$(this).find('option:first').attr('selected','selected');
雖然,正如其他人所說,有沒有必要使用.each
。事實上,nth-child
是專門那裏避免使用.each
與嘗試:
$('ul#mygroup li select').each(function() {
$(this).children('option').first().attr('selected', 'selected');
});
希望這會爲你工作。
<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');
});
});
http://jsfiddle.net/theinhlamaw/gU9Ng/ –
使用jQuery prop()會更準確 –
@JohnHartsock:更改。 – Ryan