Если стоит цель обработать клик на конкретном элементе или на его контейнере, то повешайте обработчик на один из этих элементов, а не на весь документ, иначе замучаетесь идентифицировать target.
let elem = document.querySelector('.elem'); // Берем нужный контейнер
elem.addEventListener('click' , function(e) // вешаем обработчик только на elem, за счет всплытия события, обработчик будет срабатывать на всех дочерних элементах
{
alert('k');
});
Если уж хотите оставить обработчик на документе, то идентифицируйте target.
document.addEventListener('click' , function(e)
{
let elem = document.querySelector('.elem');
if( e.target == elem // кликнули на сам контейнер elem
|| e.target.tagName == 'SPAN' && e.target.parentNode == elem // или кликнули на какой-то элемент span, непосредственный родитель которого есть наш контейнер elem
)
{
alert('k');
}
})