Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.11.2019, 12:41
Профессор
Отправить личное сообщение для DDim1000 Посмотреть профиль Найти все сообщения от DDim1000
 
Регистрация: 20.10.2016
Сообщений: 223

Перебор столбцов таблицы
Здравствуйте!
Подскажите, пожалуйста, как сделать чтоб цикл проходил по всем столбцам таблицы?
Вот так только по первому столбцу проходит:
var tch = document.querySelectorAll(".MyTab tbody tr");

                        [].forEach.call(tch, function(tr) {
                        alert(tr.cells[0].textContent); 
                       });
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2019, 12:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

DDim1000,
логично же просто добавить перед alert, forEach по tr.cells.
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2019, 13:22
Профессор
Отправить личное сообщение для DDim1000 Посмотреть профиль Найти все сообщения от DDim1000
 
Регистрация: 20.10.2016
Сообщений: 223

Сообщение от рони Посмотреть сообщение
DDim1000,
логично же просто добавить перед alert, forEach по tr.cells.
А не получится ли так, что цикл по 10 раз будет проходить по таблице?
var tch = document.querySelectorAll(".MyTab tbody tr");

                        [].forEach.call(tch, function(tr) {
                          [].forEach.cell(tch, function(tr) {
                             alert(tr.cells[0].textContent);// что здесь выведется? 
                           });
                       });
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2019, 13:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

обход ячеек таблицы слева на право
DDim1000,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>

<body>
<table width="400" class="MyTab" >
	<thead>
		<tr>
			<th>Title 1</th>
			<th>Title 2</th>
			<th>Title 3</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>Cell 1.1</td>
			<td>Cell 1.2</td>
			<td>Cell 1.3</td>
		</tr>
		<tr>
			<td>Cell 2.1</td>
			<td>Cell 2.2</td>
			<td>Cell 2.3</td>
		</tr>
	</tbody>
</table>
<script>
var tch = document.querySelectorAll(".MyTab tbody tr");
    tch.forEach(function(tr) {
    tr.querySelectorAll('td').forEach(function(td) {
    alert(td.textContent)
      });
    });
  </script>
</body>
</html>

Последний раз редактировалось рони, 04.11.2019 в 13:35.
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2019, 13:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

обход ячеек таблицы сверху на вниз
DDim1000,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>

<body>
<table width="400" class="MyTab" >
	<thead>
		<tr>
			<th>Title 1</th>
			<th>Title 2</th>
			<th>Title 3</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>Cell 1.1</td>
			<td>Cell 1.2</td>
			<td>Cell 1.3</td>
		</tr>
		<tr>
			<td>Cell 2.1</td>
			<td>Cell 2.2</td>
			<td>Cell 2.3</td>
		</tr>
	</tbody>
</table>
<script>
var tch = document.querySelectorAll(".MyTab tbody tr");
    tch[0].querySelectorAll('td').forEach(function(_, i) {
    tch.forEach(function(tr) {
    alert(tr.cells[i].textContent)
      });
    });
  </script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2019, 15:49
Профессор
Отправить личное сообщение для DDim1000 Посмотреть профиль Найти все сообщения от DDim1000
 
Регистрация: 20.10.2016
Сообщений: 223

А если таблиц несколько? Как можно обойти каждую таблицу по очереди? Ячеек в строке: 15


<div class="dat" align="left" style="border: 1px solid #000"> 

        <table width="400" class="MyTab">

            <thead>

                                              ……

                                          </thead>

            <tbody>
            
                                          <tr>

                        <td>Таблица 1. Ячейка 1</td>

                        <td>Таблица 1. Ячейка 2</td><td>Таблица 1. Ячейка 3</td>

                        <td>Таблица 1. Ячейка 4</td>

                              </tr>

                                  <tr>

                        <td>Таблица 1. Ячейка 5</td>

                        <td>Таблица 1. Ячейка 6</td>

                        <td>Таблица 1. Ячейка 7</td>

                        <td >Таблица 1. Ячейка 8</td>

                    </tr>

                </tbody>

        </table>

    </div>
<div class="dat" align="right" style="border: 1px solid #000"> 

        <table width="400" class="MyTab">

            <thead>

                                              ……

                                          </thead>

            <tbody>
            
                                          <tr>

                        <td>Таблица 2. Ячейка 11</td>

                        <td>Таблица 2. Ячейка 2 </td><td>Таблица 2. Ячейка 3</td>

                        <td>Таблица 2. Ячейка 4</td>

                              </tr>

                                  <tr>

                        <td>Таблица 2. Ячейка 5</td>

                        <td>Таблица 2. Ячейка 6</td>

                        <td>Таблица 2. Ячейка 7</td>

                        <td >Таблица 2. Ячейка 8</td>

                    </tr>

                </tbody>

        </table>

    </div>
Ответить с цитированием
  #7 (permalink)  
Старый 04.11.2019, 15:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от DDim1000
Как можно обойти каждую таблицу по очереди?
алгоритм тотже первый цикл по таблицам!!!
Ответить с цитированием
  #8 (permalink)  
Старый 04.11.2019, 16:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

DDim1000,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>

<body>
<div class="dat" align="left" style="border: 1px solid #000">

        <table width="400" class="MyTab">

            <thead>

                                              ……

                                          </thead>

            <tbody>

                                          <tr>

                        <td>Таблица 1. Ячейка 1</td>

                        <td>Таблица 1. Ячейка 2</td><td>Таблица 1. Ячейка 3</td>

                        <td>Таблица 1. Ячейка 4</td>

                              </tr>

                                  <tr>

                        <td>Таблица 1. Ячейка 5</td>

                        <td>Таблица 1. Ячейка 6</td>

                        <td>Таблица 1. Ячейка 7</td>

                        <td >Таблица 1. Ячейка 8</td>

                    </tr>

                </tbody>

        </table>

    </div>
<div class="dat" align="right" style="border: 1px solid #000">

        <table width="400" class="MyTab">

            <thead>

                                              ……

                                          </thead>

            <tbody>

                                          <tr>

                        <td>Таблица 2. Ячейка 11</td>

                        <td>Таблица 2. Ячейка 2 </td><td>Таблица 2. Ячейка 3</td>

                        <td>Таблица 2. Ячейка 4</td>

                              </tr>

                                  <tr>

                        <td>Таблица 2. Ячейка 5</td>

                        <td>Таблица 2. Ячейка 6</td>

                        <td>Таблица 2. Ячейка 7</td>

                        <td >Таблица 2. Ячейка 8</td>

                    </tr>

                </tbody>

        </table>

    </div>

<script>
var tablesTbody = document.querySelectorAll('.MyTab tbody');
    tablesTbody.forEach(function(tbody) {
    var trs = tbody.querySelectorAll('tr');
    trs[0].querySelectorAll('td').forEach(function(_, i) {
    trs.forEach(function(tr) {
    alert(tr.cells[i].textContent)
         });
      });
    });
  </script>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 04.11.2019, 16:13
Профессор
Отправить личное сообщение для DDim1000 Посмотреть профиль Найти все сообщения от DDim1000
 
Регистрация: 20.10.2016
Сообщений: 223

Сообщение от рони Посмотреть сообщение
алгоритм тотже первый цикл по таблицам!!!
Сейчас выводятся сначала все первые столбцы, из всех таблиц, потом вторые, третьи и т.д., и цикл заканчивается не успевая пройти все столбцы таблицы.
var tch = document.querySelectorAll(".MyTab tbody tr");

   tch[0].querySelectorAll('td').forEach(function(_, i) {

    tch.forEach(function(tr) {

    alert(tr.cells[i].textContent)

      });
    });
Ответить с цитированием
  #10 (permalink)  
Старый 04.11.2019, 16:37
Профессор
Отправить личное сообщение для DDim1000 Посмотреть профиль Найти все сообщения от DDim1000
 
Регистрация: 20.10.2016
Сообщений: 223

Все, разобрался. Спасибо!!!!!!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсветка строк и столбцов таблицы html sashgera Элементы интерфейса 8 20.12.2014 20:47
Удаление столбцов таблицы. Вопросы. spo jQuery 3 12.03.2013 00:58
Группировка заголовков столбцов таблицы. ExtJS 4.1. Eugent ExtJS 0 02.05.2012 11:40
Подсветка столбцов таблицы ctocopok Элементы интерфейса 31 14.06.2011 01:42
ширина столбцов таблицы после загрузки bis Events/DOM/Window 1 26.03.2010 18:35