jQuery - цикл по дочерним элементам - PullRequest
0 голосов
/ 19 мая 2010

У меня есть несколько полей выбора в таблице, например:

<tr>
<td><select></select></td>
<td><select></select></td>
<td><select></select></td>
<td><select></select></td>
</tr>

С примерно 10 строками.

Я пытаюсь сбросить все поля выбора в строке до значения по умолчанию, но возникли проблемы с синтаксисом, кто-нибудь может помочь? Это то, что у меня есть в данный момент, но, похоже, оно не работает:

$(row).children('td > select').each().val('0');

Любой совет приветствуется.

Спасибо.

Ответы [ 2 ]

1 голос
/ 19 мая 2010

Если вы пытаетесь просто выбрать значение по умолчанию, это должно работать (не проверено):

$('select', row).each(function() {
    this.selectedIndex = 0; //or whatever the index you want
});

Использование $ ('select', row) немного быстрее, чем ваш селектор, поэтому он напрямую обращается к свойству objects вместо использования объекта jQuery.

0 голосов
/ 19 мая 2010

Вам вообще не нужно each, jQuery обрабатывает применение изменений ко всем подходящим элементам:

$(row).children('td > select').val('0');

Обратите внимание, что при установке значения в поле выбора, например, выбирается вариант с соответствующим value. Это не то же самое, что установка index выбранной опции (другой ответ здесь показывает, как это сделать). Использование примера с нечисловыми значениями делает различие более ясным:

HTML:

<div id='characters'>
<select name='favorite'>
<option value='fred'>Fred Flintstone</option>
<option value='barney'>Barney Rubble</option>
<option value='wilma'>Wilma Flintstone</option>
<option value='betty' selected>Betty Rubble</option>
</select>
<select name='secondchoice'>
<option value='fred'>Fred Flintstone</option>
<option value='barney selected'>Barney Rubble</option>
<option value='wilma'>Wilma Flintstone</option>
<option value='betty'>Betty Rubble</option>
</select>

jQuery вызов, чтобы изменить оба этих слова на 'wilma':

$('#characters select').val('wilma');

... или (возможно, более разумно для этого конкретного примера) без выбора параметров вообще:

$('#characters select').val('');
...