Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Подсветка строк таблицы по условию (https://javascript.ru/forum/dom-window/72123-podsvetka-strok-tablicy-po-usloviyu.html)

рони 10.01.2018 15:57

Цитата:

Сообщение от alogin
распишите логику работы ваших примеров

если ячейки двух соседних строк одинаковы красим их , цвет выкусываем из начала массива , иначе возвращаем использованный цвет в конец массива.

Nexus 10.01.2018 16:19

Цитата:

Сообщение от рони
???

"новичок" кода не поймет :)
Так, по-моему мнению, код читается лучше:
(function(i) {
	var colors = ["red", "green", "blue"], use_color;
	[].forEach.call(document.querySelectorAll("#t1 tr"), function(row, index, next_row) {
		next_row=next_row[++index];
		if(row.cells[i].textContent == next_row.cells[i].textContent){
			use_color=use_color || colors.shift();
			row.style.backgroundColor = use_color;
			next_row.style.backgroundColor = use_color;
		}else if(use_color){
			colors.push(use_color);
			use_color=undefined;
		};
	});
})(0);

alogin 10.01.2018 16:34

Стало чуть понятнее, не подумал про массив цветов, где можно добавлять в конец массива первый элемент, век живи, век учись

рони 10.01.2018 16:40

Цитата:

Сообщение от Nexus
код читается лучше:

:thanks: :yes:

рони 10.01.2018 17:06

Цитата:

Сообщение от alogin
можно добавлять в конец массива первый элемент

можно если массив короткий, на больших массивах этот способ будет затратным и лучше будет брать цвет по индексу


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