Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2016, 18:56
Новичок на форуме
Отправить личное сообщение для dashbog Посмотреть профиль Найти все сообщения от dashbog
 
Регистрация: 02.04.2016
Сообщений: 5

Последний елемент из цикла if
Всем привет!
Надо сделать расписание, чтоб подсвечивалась та программа, которая сейчас в эфире. Расписание в виде таблицы. Получается подсветить не только программу, которая в эфире, но и прошедшие, что не нужно.
Для удобства упростил время к числам.
<!DOCTYPE html>
<html>
  <head>
    <link href="css/styles.css" rel="stylesheet">
	<script type="text/javascript" src="js/scripts.js"></script>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  </head>
  <body>

    <table id="ttable">
	  <tbody>
		<tr>
		  <td>Тиждень</td>
		  <td>1</td>
		</tr>
		<tr>
		  <td>Про гроші</td>
		  <td>2</td>
		</tr>
		<tr>
		  <td>Новини</td>
		  <td>3</td>
		</tr>
		<tr>
		  <td>Телемагазин</td>
		  <td>6</td>
		</tr>
	  </tbody>


	</table>
  </body>
</html>


function ttt() {
		var d = new Date();
		var h = d.getHours();
		var m = d.getMinutes();
		t = 3.5;
		var nTable = document.getElementById('ttable');
		nRows = nTable.rows.length;
		nCells = nTable.rows[0].cells.length;
		for (i=0; i<nRows; i++)
			{
			 for (n=0; n<nCells; n++)
				{
				 var tmp = nTable.rows[i].cells[n].innerHTML;
				 
				 if ( tmp[0] <= t ){
					 
					 nTable.rows[i].style.backgroundColor = 'yellow'}
				 }
			
			}

		}
	
	window.onload=ttt;


Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2016, 19:21
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

dashbog, тогда лучше делать проверку на tmp > t, если условие срабатывает, то красим предыдущую строку и выходим из цикла с помощью break.
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2016, 19:32
Новичок на форуме
Отправить личное сообщение для dashbog Посмотреть профиль Найти все сообщения от dashbog
 
Регистрация: 02.04.2016
Сообщений: 5

Ruslan_xDD,
Гениально! Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2016, 20:19
Новичок на форуме
Отправить личное сообщение для dashbog Посмотреть профиль Найти все сообщения от dashbog
 
Регистрация: 02.04.2016
Сообщений: 5

Теперь со временем
Со временем не выходит, и по-моему оно сравнивает еще и с ячейкой названия. Подзскажите плз.
<!DOCTYPE html>
<html>
  <head>
    <link href="css/styles.css" rel="stylesheet">
	<script type="text/javascript" src="js/scripts.js"></script>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  </head>
  <body>

    <table id="ttable">
	  <tbody>
		<tr>
		  <td>Тиждень</td>
		  <td>19:00</td>
		</tr>
		<tr>
		  <td>Про гроші</td>
		  <td>19:30</td>
		</tr>
		<tr>
		  <td>Новини</td>
		  <td>20:00</td>
		</tr>
		<tr>
		  <td>Телемагазин</td>
		  <td>20:30</td>
		</tr>
	  </tbody>


	</table>
  </body>
</html>

function checkTime(i) {
        return (i < 10) ? "0" + i : i;
    }
		function ttt() {
		var d = new Date();
            h = checkTime(d.getHours()),
            m = checkTime(d.getMinutes()),
		t = h + ":" + m;
		var nTable = document.getElementById('ttable');
		nRows = nTable.rows.length;
		nCells = nTable.rows[0].cells.length;
		for (i=0; i<nRows; i++)
			{
			 for (n=0; n<nCells; n++)
				{
				 var tmp = nTable.rows[i].cells[n].innerHTML;
				 
				 if ( tmp[0] > t ){
					 alert(t);
					 nTable.rows[i-1].style.backgroundColor = 'yellow';
					 break;
				 }
			
			}
		}
		}
	window.onload=ttt;
Ответить с цитированием
  #5 (permalink)  
Старый 02.04.2016, 20:55
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var table = document.getElementById('ttable'),
	rows = table.rows,
	currentDate = new Date,
	currentTime = currentDate.getHours() + ':' + currentDate.getMinutes();
for(var i = 0, lastIndex; i < rows.length; i++) {
	if(rows[i].cells[1].innerHTML <= currentTime) {
		lastIndex = i;
	}
}

if(lastIndex in rows) {
	rows[lastIndex].style.backgroundColor = 'yellow';
}
Ответить с цитированием
  #6 (permalink)  
Старый 02.04.2016, 21:14
Новичок на форуме
Отправить личное сообщение для dashbog Посмотреть профиль Найти все сообщения от dashbog
 
Регистрация: 02.04.2016
Сообщений: 5

Спасибо, Профессор!
Но, все-таки, корректно работает только с добавлением нолей (функция "checkTime").
function checkTime(i) {
        return (i < 10) ? "0" + i : i;
    }

function ttt () {
	var table = document.getElementById('ttable'),
	rows = table.rows,
	currentDate = new Date,
	currentTime = checkTime(currentDate.getHours()) + ':' + checkTime(currentDate.getMinutes());
for(var i = 0, lastIndex; i < rows.length; i++) {
	if(rows[i].cells[1].innerHTML <= currentTime) {
		lastIndex = i;
		alert(currentTime);
	}
}

if(lastIndex in rows) {
	rows[lastIndex].style.backgroundColor = 'yellow';
}
}
window.onload=ttt;

Буду учиться дальше.
Ответить с цитированием
  #7 (permalink)  
Старый 02.04.2016, 21:18
Новичок на форуме
Отправить личное сообщение для dashbog Посмотреть профиль Найти все сообщения от dashbog
 
Регистрация: 02.04.2016
Сообщений: 5

Ruslan_xDD,
Уникальное решение. Еще раз спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выберает только последний объект. hfts_rider Events/DOM/Window 8 25.03.2015 12:46
Проблема с наполнением массива объектов - последний элемент заменяет собой все... Джангар AJAX и COMET 5 18.12.2014 22:54
Как получить результат работы цикла в виде массива. Tungus Общие вопросы Javascript 29 08.12.2014 19:33
Повесить событие на еще не созданный елемент jeysmook Javascript под браузер 4 07.09.2014 15:25
как отобразить в окне значения счетчика во время выполнения цикла FOR Алекс97 Общие вопросы Javascript 5 06.09.2008 10:36