Выбрать все первые варианты - PullRequest
1 голос
/ 11 января 2012

из следующей разметки, я хочу получить опции a1, (all) и a.Я использовал $("option:first-child"), пока не добавил optgroup к некоторым из выбора.Теперь этот код выбирает a1, b1, (все), 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>

Ответы [ 4 ]

3 голосов
/ 11 января 2012
$("select > option:first-child, optgroup:first-child > option:first-child")

Первая часть получит первую option для select с без optgroup.2-й получает первое option из первого optgroup.

Хотя я немного смущен вашим исходным примером, потому что я не верю, что вы получите a в этом случае, потому что первый вариантэто опция (all), а не a.

2 голосов
/ 11 января 2012

Это будет выбирать a1, (все) и a:

$('select').find('option:first').each( function(ix) { alert(this.text); } );

На самом деле это всегда будет выбирать первый вариант в каждом выборе.

0 голосов
/ 11 января 2012

попробуйте это:

$('select optgroup[label]["a"] option:eq(0),select:eq(1) option:eq(0)').attr('selected', 'selected');

Демо: визит: http://jsfiddle.net/wBW4N/ и осмотрите поля выбора

0 голосов
/ 11 января 2012

Я думаю, что это должно сделать это для вас:

$('optgroup.a > option:first-child, select > option:first-child')

Вы выбираете первого ребенка из любого select, который является option, и, кроме того, специально выбираете первого ребенка изoptgroup с классом a, то есть option.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...