А все-таки почему мой пример не работает? Почему не показывает значения типа "20:30"?
Ведь "20:30">"17:32" будет true. А показывает только "целые" значения. Подскажите, почему? (так, для интереса) |
Jimy,
потому что "время сейчас" у вас скорее всего число??? , а сравнение со строкой. alert("16:30" > "16"); //true alert("16:30" > 16); //false |
Вот, вроде работает:
var arr = new Array(); $('#table3 td').each(function() { arr.push($(this).text()); }) ; for (var i = 0; i < arr.length; i++) { arr[i]=$.trim(arr[i]); if(arr[i] > date_hour) break; }; $('td:contains('+arr[i]+')').css({'background-color':'#CFF4CF'}); |
И еще вопросик вдогонку. Есть таблица с тремя td. А как в тот же массив получить значения только из первых двух, игнорируя значения в третьем?
|
Цитата:
https://api.jquery.com/lt-selector/ |
Благодарю за полезные ссылки. Буду изучать:)
|
Вот теперь вопрос про селекторы. Попробую объяснить. Есть 2 таблицы (id='table3') и (id='opas') В первой 2 столбца, во второй 3. Выполняю подсветку времени рейсов, в первой все работает, во второй подсвечивается и третий столбец, а он не нужен. Исключаю его из выборки ;not(nth-child(3). И теперь в первой таблице подсвечивается значение, совпадающее со значением в первой... Вот сам код. Понимаю, что он кривой, прошу указать явную ошибку...
код: function clock() { var d = new Date(); var day = d.getDate(); var hours = d.getHours(); var minutes = d.getMinutes(); var seconds = d.getSeconds(); month=new Array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"); days=new Array("воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"); if (day <= 9) day = "0" + day; if (hours <= 9) hours = "0" + hours; if (minutes <= 9) minutes = "0" + minutes; if (seconds <= 9) seconds = "0" + seconds; date_date = days[d.getDay()]+", "+day + " " + month[d.getMonth()] + " " + d.getFullYear() + " г. " ; date_time = hours + ":" + minutes + ":" + seconds+" "; date_hour=hours + ":" + minutes; if (document.layers) { document.layers.date.document.write(date_time); document.layers.date.document.close(); document.layers.time.document.write(date_time); document.layers.time.document.close(); } else { document.getElementById("date").innerHTML = date_date; document.getElementById("time").innerHTML = date_time; } //таблица обычных рейсов var arr = new Array(); $('#table3 td').each(function() { arr.push($(this).text()); }) ; arr.splice(arr.length-1, 1); for (var i = 0; i < arr.length; i++) { arr[i]=$.trim(arr[i]); if(arr[i] > date_hour) break; }; $('td:contains('+arr[i]+')').css({'background-color':'#CCFFCC'}); $('td:not(:contains('+arr[i]+'))').css({'background-color':'white'}); $('td:contains('+arr[i-1]+')').css({'background-color':'#99CCFF'}); $('#curtime').text(' Следующий рейс в '+arr[i]); $('#curtimenow').text(' Выполняется рейс на '+arr[i-1]+' '); if(arr[arr.length-1]<date_hour) {$('#curtime').text(' Следующий рейс в '+arr[0])}; /// // Таблица рейсов с опасным грузом var arr = new Array(); $('#opas td:not(:nth-child(3))').each(function() { arr.push($(this).text()); }) ; for (var i = 0; i < arr.length; i++) { arr[i]=$.trim(arr[i]); if(arr[i] > date_hour) break; }; $('td:contains('+arr[i]+')').css({'background-color':'#CFF4CF'}); if(arr[i] <= date_hour) $('td:contains('+arr[i]+')').css({'background-color':'white'});; // // setTimeout("clock()", 1000); } clock(); |
Все, вопрос снят! Вот олень, ведь в коде css не были прописаны id таблиц!
Теперь работает! |
Jimy,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Часовой пояс GMT +3, время: 17:56. |