Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.03.2022, 22:20
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,718

Сообщение от Артист
Выдаёт столько таблиц, сколько всего ячеек.
Видимо ошибка в if(table[j] != t).
Ошибка в
if(table[j] != t)
    {
        table[j] = t
        j++
    }

Первый раз j=0 table[j] - undefined. Условие выполнится, j =1
Второй раз j=1 table[j] - undefined. Условие выполнится, j =2
....
Условие выполняется всегда.

Последний раз редактировалось voraa, 23.03.2022 в 22:42.
Ответить с цитированием
  #12 (permalink)  
Старый 24.03.2022, 06:31
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Сообщение от рони Посмотреть сообщение
Артист,
можно только гадать, что и как вы хотите сделать. чем не устроил вариант #2 ?
Так там получается что находит только первую таблицу.
Если вы про это:
Сообщение от рони Посмотреть сообщение
let table = document.querySelector('div.cre_creature').closest('table');
Хочу для онлайн игры гвд, сделать отображение лидерства армий, т.к. в ивентах не понятно чья армия сильнее.
Я давно написал расширение для хрома и пихаю в него все свои доработки именно к этой игре.
Сообщение от voraa Посмотреть сообщение
Значит вы не все условия своих таблиц написали.
Четко напишите, чем нужная таблица отличается от ненужной. Что в ней есть, чего нет в других.
Да вроде все описал, в 3 посте пример. Отличается только классом дивов. С таким классом нет больше ничего на странице, объектов вернее нет.
Открываю код страницы в новой вкладке, в поиск ввожу cre_creature, 21 совпадение.
Из них 14 - это из таблиц, т.е. 2 таблицы у которых по 7 ячеек.
Остальные 7 - это в самом верху страницы параметры классам задаются.

Сообщение от voraa Посмотреть сообщение

Почему вы пишете 'div[class^="cre_creature"]', а не 'div.cre_creature' ?
В этом есть какой то особый смысл?
Да, смысл есть, у таблиц ещё бывает класс "cre_creature72", это я уже немного вперёд просто забегаю.

Сообщение от voraa Посмотреть сообщение
Ошибка в...
Спасибо. ))

Вечером ещё раз перепроверю.

Последний раз редактировалось Артист, 24.03.2022 в 06:35.
Ответить с цитированием
  #13 (permalink)  
Старый 24.03.2022, 07:09
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,718

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

Если нужно искать еще с классом cre_creature72, то изменить условие в фильтре на

tab.querySelector('td div:is(.cre_creature, .cre_creature72)')

Последний раз редактировалось voraa, 24.03.2022 в 07:15.
Ответить с цитированием
  #14 (permalink)  
Старый 24.03.2022, 07:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

Сообщение от Артист
Так там получается что находит только первую таблицу.
Если вы про это:
там не только эта строка!!! там ещё функция поиска ближайшей следующей таблицы, от этой.

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  table {
    border-collapse: collapse;
  }
  table td{
    width: 100px; height: 100px;
    border: 1px solid #000000
  }
  .red{
      background-color: #FF0000;
  }

  </style>

</head>

<body>
<table >
    <tr>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
    </tr>
</table>
<p>1111</p>
<table cellpadding=0 cellspacing=0 width="100%">
	<tr>
		<td width=60>
			<div class="cre_creature"  style="width:60px;">
				<img src="https://">
			</div>
		</td>

		<td width=60>
			<div class="cre_creature"  style="width:60px;">
				<img src="https://">
			</div>
		</td>
	</tr>
</table>

<p>1111</p>
<table>
       <tr>
        <td>next</td>
        <td></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
    </tr>
</table>
<script>
  function findNextTable(table)
  {
     let next;
     return Array.from(document.querySelectorAll('table')).find(el => {
     if(next) return next;
     next = el == table;
     })
  }
  let table = document.querySelector('div.cre_creature').closest('table');//определили первую таблицу

  let NextTable = findNextTable(table); // нашли следующую за ней
  if(NextTable) {
      let tds = NextTable.querySelectorAll('td');
      tds.forEach(td => td.classList.add('red')) //покрасили все клетки в следующей таблице в красный цвет, для примера
  }
</script>
</body>
</html>
Ответить с цитированием
  #15 (permalink)  
Старый 24.03.2022, 17:37
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Ну не ругайтесь, я туплю частенько. ))
Спасибо, буду пробовать, когда выйду из запоя. )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Google map API: поиск места и получение координат. test2542 Общие вопросы Javascript 1 26.02.2019 11:17
Зафиксировать элемент от определенного места blacklool Общие вопросы Javascript 8 05.03.2014 04:02
google maps api поиск места freemanf Библиотеки/Тулкиты/Фреймворки 0 16.08.2013 15:42
Фреймы и document Почемучкин Events/DOM/Window 11 09.12.2011 12:46
Поиск определенного слова в тексте faforty Общие вопросы Javascript 4 24.09.2011 15:41