Próbuję znaleźć i ustawić pierwszą opcję wielu wybranych skrzynek na stronie.

$('ul#mygroup li select').each(function () {
  $(this +' option:nth-child(0)').attr('selected', 'selected');
});

Druga linia to miejsce, w którym się nie zawodzi. Nie mogę wydawać się ukierunkowania pierwszej opcji każdego pola wyboru w ramach grupy.

3
vinman75 15 listopad 2011, 20:37

5 odpowiedzi

Najlepsza odpowiedź

Nie potrzebujesz .each(); Po prostu to zrobić:

$('#mygroup li select option:first-of-type').prop('selected', true);
5
Ry- 15 listopad 2011, 16:39

Umieszasz selektorów.

Musisz napisać $(this).children('option:first-child').attr('selected', true).

Możesz także napisać $('ul#mygroup li select').prop('selectedIndex', 0).

3
Matt 15 listopad 2011, 16:40

Nie powinieneś być włączający this, powinieneś użyć go do zasięgu .

$('option:first',this).attr('selected','selected');

Lub zwięźle mówisz (trzymaj go w pętli .each)

$(this).find('option:first').attr('selected','selected');

Chociaż, jak wspominali inni, nie ma potrzeby używania .each. W rzeczywistości nth-child jest w szczególności do Unikaj za pomocą .each

2
Brad Christie 15 listopad 2011, 16:39

Spróbuj z:

$('ul#mygroup li select').each(function () {
  $(this).children('option').first().attr('selected', 'selected');
});
1
Matt 15 listopad 2011, 16:40

Mam nadzieję, że to zadziała.

<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');
    });
});
0
Thein Hla Maw 15 listopad 2011, 16:53