Всем привет, в задаче имеется родительский блок
<div class="parent-block">...</div>
имеющий в себе определенное количество дочерних блоков
<div class="child-block">...</div>
в свою очередь в каждом дочернем блоке находятся item с id. Задача заключается в том, что мне нужно получить только "кликнутые" id определенного родительского блока, например в первом блоке кликнул по кнопкам 1, 3, 5 должно вывести в консоль 1, 3 , 5, после во втором выбираем 2, 4 и выводится 2 и 4. Кнопка add all id собирает айдишки только со своего child-block. Я так полагаю, что это можно реализовать с помощью filter или же map, но не понимаю как выводить что то типа e.target.id, пока выводятся все имеющиеся id. Кнопки при клике закрасил просто для наглядности.
https://jsfiddle.net/j0zyusg8/2/
<div class="parent-block">
<div class="child-block">
<div class="item">
<span class="elem" id="1">1</span>
<button class="btn">id</button>
</div>
<div class="item">
<span class="elem" id="2">2</span>
<button class="btn">id</button>
</div>
<div class="item">
<span class="elem" id="3">3</span>
<button class="btn">id</button>
</div>
<div class="item">
<span class="elem" id="4">4</span>
<button class="btn">id</button>
</div>
<div class="item">
<span class="elem" id="5">5</span>
<button class="btn">id</button>
</div>
<button class="btn-all">add all id</button>
</div>
<div class="child-block">
<div class="item">
<span class="elem" id="1">1</span>
<button class="btn">id</button>
</div>
<div class="item">
<span class="elem" id="2">2</span>
<button class="btn">id</button>
</div>
<div class="item">
<span class="elem" id="3">3</span>
<button class="btn">id</button>
</div>
<div class="item">
<span class="elem" id="4">4</span>
<button class="btn">id</button>
</div>
<div class="item">
<span class="elem" id="5">5</span>
<button class="btn">id</button>
</div>
<button class="btn-all">add all id</button>
</div>
</div>
let elem = document.querySelectorAll('.elem')
let parentBlock = document.querySelector('.parent-block')
let item = document.querySelector('.item')
parentBlock.addEventListener('click', function(e) {
if (e.target.classList.contains('btn-all')) {
[...elem].map(item => console.log(item.id))
}
if (e.target.classList.contains('btn')) {
e.target.style.background = 'red';
}
})