Я с трудом пытаюсь установить значение определенной ячейки в таблице.
Вот ссылка на jsfiddle with, содержащая образец этого: Sample
Iиметь таблицу, которая создается следующим образом:
var r = [];
var j = -1;
r[++j] = '<table cellspacing="0" id="TableWeeklyFrame"><thead><tr><th><div>Day</div></th><th><div>Profile</div></th></tr></thead><tbody>';
for (var i=0; i<data.length; i++) {
r[++j] = '<tr class="WeeklyFrameTR">';
r[++j] = '<td class="WeeklyFrameDay">';
r[++j] = data[i];
r[++j] = '</td><td><select class="SelectionWeeklyFrameProfile"></select>';
r[++j] = '</td>';
r[++j] = '</tr>';
}
r[++j] = '</tbody></table>';
$('#TableWeeklyFrame').html(r.join(''));
Таким образом, таблица имеет 7 строк и 2 столбца:
|Day|Profile|
|Monday|Value|
|Tuesday|Value|
|Wednesday|Value|
|Thursday|Value|
|Friday|Value|
|Saturday|Value|
|Sunday|Value|
Значение - это выборка, содержащая несколько значений.
Теперь проблема ..
У меня есть набор значений, экв (день = понедельник, значение = выкл).Поскольку дни не всегда в этом порядке (ну, в большинстве случаев, но это не главное), мне нужно сначала найти строку, содержащую день, а затем установить значение выбора на то, что я хочу.
Iможно найти строку с определенным днем, выполнив
$('#TableWeeklyFrame tr.WeeklyFrameTR').find('td.WeeklyFrameDay:contains("Monday")');
И, наконец, вопрос: как установить значение следующей / второй ячейки для этой строки?
Я пытаюсь неперебрать всю таблицу.До сих пор я пробовал несколько вещей, в том числе:
$('#TableWeeklyFrame tr.WeeklyFrameTR').find('td.WeeklyFrameDay:contains("Monday")').find('td select.SelectionWeeklyFrameProfile').val()
$('#TableWeeklyFrame tr.WeeklyFrameTR').find('td.WeeklyFrameDay:contains("Monday")').next('td').val()
$('#TableWeeklyFrame tr.WeeklyFrameTR').find('td.WeeklyFrameDay:contains("Monday")').find('select.SelectionWeeklyFrameProfile').val()
$('#TableWeeklyFrame tr.WeeklyFrameTR').find('td.WeeklyFrameDay:contains("Monday")').next('select.SelectionWeeklyFrameProfile').val()
Все они возвращают неопределенное.Мне здесь чего-то не хватает, и я чувствую, что это что-то глупое и маленькое ..
Кроме того, если есть более простой и быстрый способ достижения аналогичного результата, пожалуйста, дайте мне знать.