Показать сообщение отдельно
  #1 (permalink)  
Старый 07.12.2015, 16:22
M@x M@x вне форума
Новичок на форуме
Отправить личное сообщение для M@x Посмотреть профиль Найти все сообщения от M@x
 
Регистрация: 05.03.2015
Сообщений: 7

Скрыть одинаковые в таблице
Добрый день! У меня есть таблица:
<table name="table">
<tbody>
  <tr>
    <td>1</td>
    <td class="tempdat-1">test</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-2">test</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-3">test1</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-4">test1</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-5">test2</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-6">test1</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-7">test</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-8">test2</td>
  </tr>
  <!-- строк очень много-->
</table>

которая формируется динамически из php-скрипта. Первый столбец всегда заполнен "1", а второй может иметь разные значения, но как видно из примера - они могут и будут повторяться. Задача в том, чтобы скрыть, но не удалять со страницы строки в которых значения второго столбца одинаковые, оставив при этом одно уникальное значение, т.е. таблица после обработки скриптом должна иметь вид:
<table name="table">
<tbody>
  <tr>
    <td>1</td>
    <td class="tempdat-1">test</td>
  </tr>
  <tr hidden>
    <td>1</td>
    <td class="tempdat-2">test</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-3">test1</td>
  </tr>
  <tr hidden>
    <td>1</td>
    <td class="tempdat-4">test1</td>
  </tr>
  <tr>
    <td>1</td>
    <td class="tempdat-5">test2</td>
  </tr>
  <tr hidden>
    <td>1</td>
    <td class="tempdat-6">test1</td>
  </tr>
  <tr hidden>
    <td>1</td>
    <td class="tempdat-7">test</td>
  </tr>
  <tr hidden>
    <td>1</td>
    <td class="tempdat-8">test2</td>
  </tr>
  <!-- строк очень много-->
</table>

Как я вижу решение - собрать уникальные значения из второго столбца и сравнить с таблицей. Так я получаю массив с уникальными значениями
var  uRows = {};
var  hiddenData = document.querySelectorAll("[class^='tempdat-']");
         for (var j=0; j<hiddenData.length; j++)  {
			 var numb = hiddenData[j].innerHTML;
           uRows[numb] = (uRows[numb]||0)+1;
         };

А дальше ни как Помогите пожалуйста сравнить мой массив с таблицей для решения задачи Или может быть есть другой способ... Буду рад любой помощи. Спасибо за помощь и понимание.
Ответить с цитированием