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> |
(элемент 0,1,2,3) в таблице нет
|
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); |
В данном случае будет 2 цифры , 0 и 1., но может быть 0,1,2 Можно из них как-то сделать массив, типа var N=["0","1","2"]; Спасибо
|
Мая твая ни панимать.
По человечески опишите, что вам нужно. Без этих ваших элементов, цифр и массивов. Вам нужно было найти ячейки, которые содержат изображение с определенным классом и адресом - я показал код, который возвращает индексы строки и ячейки этих элементов. Последующее сообщения я расшифровать, увы, не в состоянии. |
есть таблица
<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. результат = рандомный элемент из массива, который выше. Спасибо. |
Цитата:
<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> |
спасибо
|
если таких таблиц на странице 2, и мне нужна вторая?
const table = document.querySelector('.treasure_tab')[1];? |
const table = document.querySelectorAll('.treasure_tab')[1]; |
спасибо Вам большое за помощь. Вы хороший человек :)
|
Вопрос глупый но, я запутался - помогите пожалуйста, как результат R, полученный в функции A(), вывести в функции B()?
function A() { R=Math.floor(Math.random() * 100); } function B() { alert(R); } |
Часовой пояс GMT +3, время: 00:41. |