Вам правильно выше посоветовали. Начал придумывать код с forEach и незаметно сам пришёл к варианту автора выше с while.
Всё таки приложу полностью код:
const btn = document.querySelectorAll(".parent__btn");
const parent = document.querySelectorAll(".parent");
const btnsArray = Array.from(btn); // Превращаем коллекцию типа NodeList в массив
btnsArray.forEach(b => { // устанавливаем обработчики на кнопки
b.addEventListener('click', listener);
});
function listener(event) {
let el = event.target;
while (el.className != 'parent') { // код автора предыдущего комментария
el = el.parentNode;
}
if (el) {
const parent = el.querySelector('.parent__text');
const btnText = parent.textContent;
console.log(btnText); // текст нужной ноды
}
}
Здесь forEach используется только для установки обработчиков на кнопках.
Конечно, можно сделать и поиск нужного элемента через forEach (и filter), возможно, как то ещё. Но работать будет быстрее первый вариант с while.