Вопрос новичка о нахождений значений
Добрый день! Есть таблица с расписанием рейсов, там указано время в виде 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, время: 10:25. |