Вопрос новичка о нахождений значений
Добрый день! Есть таблица с расписанием рейсов, там указано время в виде 12:00,12:30,16:00 и т.д.
Также на страничке отображается текущее время в виде 12:00. Как найти ближайший рейс? Я делаю так: $('td:contains('+date_hour+')'), где переменная date_hour содержит текущее время. Получается, находит, но только когда точно совпадает. А надо немного по другому - найти все значения в таблице, которые больше текущего времени и указать самый первый (который меньше всех). Думаю, что как-то так. А как реализовать в коде, подскажите? Спасибо! |
Jimy,
:-? for (var i = 0; i < tds.length; i++) { if(tds[i].time > now) break; } |
Спасибо. Прошу прощения за тупость, но что такое tds? Явно какой-то массив, но откуда он?
|
Цитата:
|
Спасибо. В принципе, я так и думал: вытащить значения ячеек в массив и потом уже с ним и работать... Но вот интересно - а другого способа нет? Jquery не сможет найти нужные значения непосредственно из таблицы, без вспомогательных массивов, объектов и т.д.?
|
Цитата:
попробуйте создать, для начала, таблицу из массива. |
Спасибо, буду пробовать!
|
А подскажите, в чем ошибка? Сделал так:
var arr = new Array(); $('#table3 td').each(function() { arr.push($(this).text()); }) ; alert(arr); alert (date_hour); for (var i = 0; i < arr.length; i++) { if(arr[i] > date_hour) alert(arr[i]); }; Массив получается. там значения 8:00,8:30,9:00 ....20:30, 21:00 Первый alert это показывает, все как надо. Далее, смотрим время. Допустим, 16:02. А вот третий alert будет выводить 17:00, потом 18 и т.д. А где 16:30? Как правильно сравнить? Спасибо. |
<html><head><style> span{font: bold 120% sans-serif; }</style></head><body> <script> var times = [ "8:00","8:30","9:00","9:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30", "15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30","19:00","19:30","20:00", "20:30", "21:00"]; var html = ""; var now = new Date(); now = now.getHours() * 60 + now.getMinutes(); // сам алгоритм var nextTripFinded = false; for(var i = 0; i < times.length; i++) { var t = times[i].split(":"); var isFollowingTrip = t[0] * 60 + +t[1] > now; var s = isFollowingTrip ? '' : 'color: gray;'; if(!nextTripFinded && isFollowingTrip) { nextTripFinded=true; s += 'background:yellow;'; } if(s) s = 'style="' + s + '"'; html += '<span ' + s + '>' + times[i] + '</span> '; } // конец алгоритма document.body.innerHTML = html; </script></body></html> |
Спасибо!
|
Часовой пояс GMT +3, время: 03:28. |