
19.07.2025, 21:10
|
 |
Профессор
|
|
Регистрация: 16.07.2018
Сообщений: 308
|
|
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>
|
|

19.07.2025, 21:12
|
 |
Профессор
|
|
Регистрация: 16.07.2018
Сообщений: 308
|
|
(элемент 0,1,2,3) в таблице нет
|
|

19.07.2025, 21:19
|
 |
Профессор
|
|
Регистрация: 16.07.2018
Сообщений: 308
|
|
document.querySelectorAll и перебор массива узнать номера массивов
Есть таблица, могу я как-то через document.querySelectorAll и перебор массива узнать номера массивов, которые содержат это - class="dnosel" src="/Themes/images/Blackmarket/map.png".
цифры узнать, например 0 и 1 ? Элемент 0,1,2,3 этого в таблице нет. Помогите пожалуйста. Спасибо
<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>
|
|

19.07.2025, 21:27
|
Профессор
|
|
Регистрация: 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);
|
|

19.07.2025, 21:29
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,831
|
|
|
|

19.07.2025, 21:32
|
 |
Профессор
|
|
Регистрация: 16.07.2018
Сообщений: 308
|
|
В данном случае будет 2 цифры , 0 и 1., но может быть 0,1,2 Можно из них как-то сделать массив, типа var N=["0","1","2"]; Спасибо
|
|

19.07.2025, 21:57
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,831
|
|
Мая твая ни панимать.
По человечески опишите, что вам нужно. Без этих ваших элементов, цифр и массивов.
Вам нужно было найти ячейки, которые содержат изображение с определенным классом и адресом - я показал код, который возвращает индексы строки и ячейки этих элементов.
Последующее сообщения я расшифровать, увы, не в состоянии.
|
|

19.07.2025, 22:26
|
 |
Профессор
|
|
Регистрация: 16.07.2018
Сообщений: 308
|
|
есть таблица
<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, 19.07.2025 в 22:32.
|
|

19.07.2025, 22:34
|
Профессор
|
|
Регистрация: 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>
|
|

19.07.2025, 22:55
|
 |
Профессор
|
|
Регистрация: 16.07.2018
Сообщений: 308
|
|
спасибо
|
|
|
|