Показать сообщение отдельно
  #1 (permalink)  
Старый 10.01.2018, 13:03
Новичок на форуме
Отправить личное сообщение для alogin Посмотреть профиль Найти все сообщения от alogin
 
Регистрация: 10.01.2018
Сообщений: 5

Подсветка строк таблицы по условию
Добрый день, Гуру

Есть массив цветов состоящий из 3х цветов
И есть таблица со значениями
Нужно чтобы строки с одинаковыми значениями подсвечивались цветами из массива по порядку, т.е. для первых одинаковых был нулевой элемент массива, для вторых одинаковых был 1 элемент массива, и т.д.
Как только цвета заканчиваются и выборка опять начинается с 0

Проблема как раз стоит в выборе цвета и его обнулении при достижении конца массива.

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

Если есть какие нибудь мысли - прошу помочь.

пример того что сделал https://jsfiddle.net/aecoxyyw/

так же ниже сам код
<table id="t1">
  <tr><td>1</td></tr>
  <tr><td>1</td></tr>
  <tr><td>2</td></tr>
  <tr><td>2</td></tr>
  <tr><td>2</td></tr>
  <tr><td>3</td></tr>
  <tr><td>3</td></tr>
  <tr><td>3</td></tr>
  <tr><td>3</td></tr>
  <tr><td>4</td></tr>
  <tr><td>4</td></tr>
</table>
var objT = document.getElementById('t1');
var r = objT.rows.length;
var color = ['white', 'grey', 'yellow'];
for (i = 1; i < r; i++) {
  var res_i = objT.rows[i].cells[0].innerHTML;
  var rand = Math.floor(Math.random() * color.length);
  for (j = 0; j < r; j++) {
    var res_j = objT.rows[j].cells[0].innerHTML;
    if (res_i == res_j) {
      objT.rows[j].style.background = color[rand];
    }
  }
}
Ответить с цитированием