Обход таблицы по вертикали

248
27 июня 2017, 21:37

Всем привет. Подскажите пожалуйста, есть ли какой-то простой способ обойти таблицу по вертикали, сейчас я знаю только такой способ, чтобы пройтись по всем ячейкам:

$('td').each(function(i){ 
  console.log(this); 
});

но он ходит по горизонтали. Нужен метод, который ходил бы по вертикали:

Заранее благодарен за любую помощь, литература или любой другой ресурс.

Answer 1

Для того, чтобы найти ответ на этот вопрос, сначала нужно верно задать вопрос. Давайте посмотрим на структуру таблицы в html-коде:

<table>
  <tr>
    <td></td><td></td><td></td>
  </tr>
  <tr>
    <td></td><td></td><td></td>
  </tr>
  ...
</table>

Сразу становится ясно, почему по умолчанию JQuery реализует именно обход по горизонтали - банально потому, что таблица строится из строк (<tr>), которые содержат в себе то или иное количество ячеек. Естественно, что если вы начнете перебирать эти ячейки (<td>), то ваш перебор пойдет по горизонтали, строка за строкой.

Соответственно, чтобы решить вашу задачу, вам нужно придумать, как преобразовать структуру ваших данных (по сути - таблицу, а если еще конкретнее - DOM-дерево селектора table), таким образом, чтобы элементы строились вертикально.

Я бы наметил тут три пути:

  1. Найти нужный функционал в JS/JQuery.
  2. Перестроить таблицу средствами html, если таковое возможно.
  3. Сначала выгрузить все данные в некую матрицу, которую потом крутить как угодно.

Можете посмотреть ответы на эти вопросы (или попытки ответов) тут или тут.

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

READ ALSO
В каком случае лучше использовать volatile?

В каком случае лучше использовать volatile?

Предположим, у меня имеется List<T>, который одновременно читает один поток, а другой в него пишетВ данному случае что было бы правильнее...

247
c++ cli Сортировка ListBox

c++ cli Сортировка ListBox

Есть xml файл, у каждой ноды есть 2 атрибута, допустим name и number, хочу сделать ListBox с сортировкой по одному из атрибутов, для наглядности xml:

393
Остановить все Windows службы, не содержащихся в списке

Остановить все Windows службы, не содержащихся в списке

Останавливаю службы из списка List<string> таким способом:

256
Сортировка текста в тхт файле по алфавиту

Сортировка текста в тхт файле по алфавиту

В тхт файле есть строки типа :

323