Показать сообщение отдельно
  #5 (permalink)  
Старый 20.11.2012, 10:47
Аспирант
Отправить личное сообщение для mbp64 Посмотреть профиль Найти все сообщения от mbp64
 
Регистрация: 20.07.2012
Сообщений: 45

вот такой пример.
есть таблица,
первая ячейка каждой строки пустая,
во второй ячейке содержится текст новости с датой.
Дата внутри тега <div> .
Нужно выбрать дату, найти разницу с текущей и если она
меньше 120 дней, поставить в первой ячейке текст new.
Почему-то она пишет его в обоих ячейках, затирая текст.

var now = new Date(); // текущая дата

    window.onload = function() {
	 
	 $('table.news_table tr').each(function (i) { 
	                          var tmp =   $(this); // получаем строку
				  var f1 = tmp.children(); // ссылка на первую ячейку, чтоб записать признак new
				  var f2 = f1.next();	// переходим к следующей ячейке 			  
				  var f3 = f2.children(); // выбираем дату из тега div
				  var cc = f3.html();	// значение даты в формате ДД.ММ.ГГГГ
				  alert(tmp.html());
				  alert('cc='+cc);
				  var dt = cc.split('.');  // парсим дату
				  dt[1]--; // отсчет месяца с нуля
				  var nd = dt[2]+'-'+dt[1]+'-'+dt[0];
                                  var cd = new Date(dt[2],dt[1],dt[0],0,0,0); 
				  var diff = 0;
                                  diff = (now.getTime() - cd.getTime()) / (1000*60*60*24); // разница в днях
				  alert(diff);
                                  if (diff <= 120 ) { 
                            // если меньше 120 дней, пытаемся записать текст в первую ячейку, но пишет во все ячейки строки, затирая всю строку :(				   
 				      f1.html('new'); 
				  }

	   });
    }

Последний раз редактировалось mbp64, 20.11.2012 в 10:55.
Ответить с цитированием