Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый Вчера, 21:10
Аватар для Brick
Профессор
Отправить личное сообщение для Brick Посмотреть профиль Найти все сообщения от Brick
 
Регистрация: 16.07.2018
Сообщений: 306

document.querySelectorAll и перебор массива узнать номера массивов
Есть таблица, могу я как-то через document.querySelectorAll и перебор массива узнать номера массивов, которые содержат это - class="dnosel" src="/Themes/images/Blackmarket/map.png".
цифры узнать, например 0 и 1 ?

<table class="treasure_tab">
<tr>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/map.png"/> (элемент 0)
</td>
<td>
<img width="48" class="dsel" src="/Themes/images/Blackmarket/map.png"/> (элемент 1)
</td>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/hole.png"/> (элемент 2)
</td>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/hole.png"/> (элемент 3)
</td>
</tr>
</table>
Ответить с цитированием
  #2 (permalink)  
Старый Вчера, 21:12
Аватар для Brick
Профессор
Отправить личное сообщение для Brick Посмотреть профиль Найти все сообщения от Brick
 
Регистрация: 16.07.2018
Сообщений: 306

(элемент 0,1,2,3) в таблице нет
Ответить с цитированием
  #3 (permalink)  
Старый Вчера, 21:27
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

const table = document.querySelector('.treasure_tab');

const indexOfItemsThatHasMap = [].map.call(
  table.querySelectorAll('[src="/Themes/images/Blackmarket/map.png"].dnosel'), 
  node => {
    const row = node.closest('tr');
    const cell = node.closest('td');
    
    return {
      rowIndex: [].indexOf.call(row.parentNode.children, row),
      cellIndex: [].indexOf.call(cell.parentNode.children, cell),
    };
  }
);

console.log(indexOfItemsThatHasMap);
Ответить с цитированием
  #4 (permalink)  
Старый Вчера, 21:32
Аватар для Brick
Профессор
Отправить личное сообщение для Brick Посмотреть профиль Найти все сообщения от Brick
 
Регистрация: 16.07.2018
Сообщений: 306

В данном случае будет 2 цифры , 0 и 1., но может быть 0,1,2 Можно из них как-то сделать массив, типа var N=["0","1","2"]; Спасибо
Ответить с цитированием
  #5 (permalink)  
Старый Вчера, 21:57
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Мая твая ни панимать.
По человечески опишите, что вам нужно. Без этих ваших элементов, цифр и массивов.

Вам нужно было найти ячейки, которые содержат изображение с определенным классом и адресом - я показал код, который возвращает индексы строки и ячейки этих элементов.
Последующее сообщения я расшифровать, увы, не в состоянии.
Ответить с цитированием
  #6 (permalink)  
Старый Вчера, 22:26
Аватар для Brick
Профессор
Отправить личное сообщение для Brick Посмотреть профиль Найти все сообщения от Brick
 
Регистрация: 16.07.2018
Сообщений: 306

есть таблица


<table class="treasure_tab">
<tr>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/map.png"/>
</td>
<td>
<img width="48" class="dsel" src="/Themes/images/Blackmarket/map.png"/>
</td>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/hole.png"/>
</td>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/hole.png"/>
</td>
</tr>
</table>

1.Мне нужно узнать номера ячеек таблицы которые содержат это — class="dnosel" src="/Themes/images/Blackmarket/map.png" (это будут числа 0 и 1)
2. Из этих чисел нужно сделать массив.
3. результат = рандомный элемент из массива, который выше.
Спасибо.

Последний раз редактировалось Brick, Вчера в 22:32.
Ответить с цитированием
  #7 (permalink)  
Старый Вчера, 22:34
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

Сообщение от Brick
1.Мне нужно узнать номера элементов которые содержат это — class="dnosel" src="/Themes/images/Blackmarket/map.png" (это будут числа 0 и 1)
Как это могут быть числа 0 и 1, если во второй ячейке изображение не содержит класс dnosel?


<table class="treasure_tab">
<tr>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/map.png"/>
</td>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/map.png"/>
</td>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/hole.png"/>
</td>
<td>
<img width="48" class="dnosel" src="/Themes/images/Blackmarket/hole.png"/>
</td>
</tr>
</table>

<script>
const table = document.querySelector('.treasure_tab');

const indexOfItemsThatHasMap = [].map.call(
  table.querySelectorAll('[src="/Themes/images/Blackmarket/map.png"].dnosel'), 
  node => {
    const row = node.closest('tr');
    const cell = node.closest('td');
    
    return {
      rowIndex: [].indexOf.call(row.parentNode.children, row),
      cellIndex: [].indexOf.call(cell.parentNode.children, cell),
    };
  }
);

var N = indexOfItemsThatHasMap.map(item => item.cellIndex);
var randomniyElementMassiva = N[Math.floor(Math.random() * N.length)];

document.write(JSON.stringify({indexOfItemsThatHasMap, N, randomniyElementMassiva}, null, 2));
</script>
Ответить с цитированием
  #8 (permalink)  
Старый Вчера, 22:55
Аватар для Brick
Профессор
Отправить личное сообщение для Brick Посмотреть профиль Найти все сообщения от Brick
 
Регистрация: 16.07.2018
Сообщений: 306

спасибо
Ответить с цитированием
  #9 (permalink)  
Старый Вчера, 23:12
Аватар для Brick
Профессор
Отправить личное сообщение для Brick Посмотреть профиль Найти все сообщения от Brick
 
Регистрация: 16.07.2018
Сообщений: 306

если таких таблиц на странице 2, и мне нужна вторая?
const table = document.querySelector('.treasure_tab')[1];?
Ответить с цитированием
  #10 (permalink)  
Старый Сегодня, 03:10
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,831

const table = document.querySelectorAll('.treasure_tab')[1];
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебор массива TheSanches Общие вопросы Javascript 4 05.07.2022 14:08
Раздельный перебор массива Himmelin Общие вопросы Javascript 18 31.10.2020 19:28
Перебор элементов массива и сравнение со значением TheSanches Общие вопросы Javascript 7 26.02.2018 19:54
Перебор массива - вложенный цикл SWin Общие вопросы Javascript 35 27.12.2013 05:06
splice массива массивов vahrusha Общие вопросы Javascript 9 27.07.2010 15:41