Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как напрямую работать с ячейками таблицы, по индексам? (https://javascript.ru/forum/dom-window/33333-kak-napryamuyu-rabotat-s-yachejjkami-tablicy-po-indeksam.html)

mbp64 19.11.2012 18:33

Как напрямую работать с ячейками таблицы, по индексам?
 
Добрый день.
Есть таблица, которая содержит список новостей.
Каждая новость содержит дату.
Нужно добавить значок new, если дата отличается от текущей меньше, чем на заданное значение.

выбираю таблицу по классу
var x = $('table.news_table');
нахожу строку таблицы через children() в цикле,
получаю значения и номер строки.
Как записать тег <img src=new.jpg" > в ячейку соотв. строки?

ksa 19.11.2012 20:36

Цитата:

Сообщение от mbp64
Как записать тег <img src=new.jpg" > в ячейку соотв. строки?

http://www.fpublisher.ru/documentati...s#hcreateevent
http://www.fpublisher.ru/documentati...s#happendchild

mbp64 20.11.2012 09:52

Спасибо.
Только не представляю, как это всё запомнить.
:(

Может, есть дока с примерами?

ksa 20.11.2012 10:07

Цитата:

Сообщение от mbp64
Может, есть дока с примерами?

По последней ссылке есть и пример с использованием обоих методов.

Как вариант - готовь тестовый пример на котором все можно будет продемонстрировать...

mbp64 20.11.2012 10:47

вот такой пример.
есть таблица,
первая ячейка каждой строки пустая,
во второй ячейке содержится текст новости с датой.
Дата внутри тега <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'); 
				  }

	   });
    }

ksa 20.11.2012 14:31

Цитата:

Сообщение от mbp64
вот такой пример

Это не пример... Это какой-то огрызок...


Часовой пояс GMT +3, время: 22:06.