Как можно добавить класс к элементу "p" в каждом слайде при нажатии на элемент "i-play", чтобы это происходило независимо для каждого слайда? <br/> <br/> <pre><code class="html"><ul class="slider"> <li class="slide"> <div class="i-play"></div> <p>Простот текст</p> </li> <li class="slide"> <div class="i-play"></div> <p>Простот текст</p> </li> <li class="slide"> <div class="i-play"></div> <p>Простот текст</p> </li> </ul></code></pre> <br/> <br/> Я пробовал реализовать это следующим образом: <br/> <br/> <pre><code class="javascript">document.querySelectorAll(".i-play").forEach((el) => { el.addEventListener("click", function () { document.querySelector(".slide p").classList.add("show"); }); });</code></pre> <br/> <br/> Однако при использовании этого кода срабатывает только первый слайд.
Проблема в вашем коде заключается в том, что вы в каждой итерации добавляете класс "show" только к первому элементу `<p>` в документе, так как `document.querySelector(".slide p")` всегда будет возвращать первый найденный элемент. Вместо этого вам нужно добавить класс только к тому элементу `<p>`, который находится в том же родительском слайде, что и кликнутый элемент `.i-play`. Для этого можно использовать `closest` для поиска родительского элемента `<li class="slide">` и затем находить внутри него нужный элемент `<p>`. Вот исправленный код: ```javascript document.querySelectorAll(".i-play").forEach((el) => { el.addEventListener("click", function () { const slide = el.closest(".slide"); // Найти родительский элемент slide const p = slide.querySelector("p"); // Найти p внутри этого slide p.classList.add("show"); // Добавить класс show к найденному p }); }); ``` С помощью этого исправленного кода при нажатии на элемент `.i-play` будет добавляться класс `show` только к тому элементу `<p>`, который находится внутри слайда, на который был произведён клик.
document.querySelectorAll(".i-play").forEach((el) => { el.addEventListener("click", function () { document.querySelectorAll(".slide p").forEach(p => { p.classList.add("show"); }); }); });