Здравствуйте, столкнулся с такой проблемой:
Нужно, чтобы при клике на определённый блок с классном 'item' включался трек, заключенный в этом самом блоке. Я попытался сделать это при помощи циклов, проиндексировав каждый элемент. Если в теле цикла указать item[i].addEventListener("click", () => audio[1( или любое другое число, равное не превышающее допустимую длину )].play()), то трек включается, но только тот, что указан в квадратных скобках. Но если указывать в цикле в переменной audio[i], то трек не включается
Как сделать так, чтобы при клике на блок включался именно тот трек, который в нём заключен, при этом, чтобы не приходилось прописывать индекс каждого блока и трека в ручную, как показано в примере моего кода (Пример 2)
Пример 1
<?php
require 'ARTIST/CYPARISS/#data.php';
$cnt = count($arr_images);
for ($i = 0; $i < $cnt; $i++) {
?>
<div class="item">
<div class="song__index"><?php echo $i + 1 ?></div>
<img class = 'song__poster' src = 'ARTIST/CYPARISS/<?php echo $arr_images[$i]['poster'] ?>'>
<audio class = 'audio' src ='ARTIST/CYPARISS/<?php echo $arr_images[$i]['song'] ?>'></audio>
<div class="song"><?php echo $arr_images[$i]['name']?> </div>
</div>
<?php } ?>
Пример 2
let item = document.querySelectorAll('.item')
let img = document.querySelectorAll('.song__poster')
let audio = document.querySelectorAll('audio')
for(i = 0; i < item.length; i++) {
for(i = 0; i < audio.length; i++) {
item[0].addEventListener("click", () => audio[0].play())
item[1].addEventListener("click", () => audio[1].play())
item[2].addEventListener("click", () => audio[2].play())
}
}
Пример 3 - PHP код содержащий ссылки на картинки и сами треки
<?php
$arr_images = [
['poster' => 'EMPTY DREAMS.jpeg', 'song' => 'EMPTY DREAMS.mp3', 'name' => 'EMPTY DREAMS'],
['poster' => 'DARKANGELS.jpeg', 'song' => 'DARKANGELS.mp3', 'name' => 'DARKANGELS'],
['poster' => 'ABYSS.jpeg', 'song' => 'ABYSS.mp3', 'name' => 'ABYSS'],
['poster' => 'ETERNITY.jpeg', 'song' => 'ETERNITY.mp3', 'name' => 'ETERNITY'],
['poster' => 'REDMIST.jpeg', 'song' => 'REDMIST.mp3', 'name' => 'REDMIST'],
['poster' => 'SUPPRESSION.jpeg', 'song' => 'SUPPRESSION.mp3', 'name' => 'SUPPRESSION'],
];