Поскольку вы добавляете прослушиватели событий в div по их идентификатору, этот раздел вашего кода уже знает, какой идентификатор вы просматриваете. Так что вы можете просто сослаться на это; например:
document.getElementById('player1Div').addEventListener('click', e => {
if (e.target.tagName.toLowerCase() === 'img') {
// You're in player1Div!
}
});
document.getElementById('player2Div').addEventListener('click', e => {
if (e.target.tagName.toLowerCase() === 'img') {
// You're in player2Div!
}
});
В качестве альтернативы, если вам нужно добавить обработчик щелчков на весь раздел, вы можете использовать свойство parentNode
цели, чтобы получить DIV, а затем получить доступ к его идентификатору:
const section = document.querySelector('section.cards');
section.addEventListener('click', e => {
if (e.target.tagName.toLowerCase() === 'img') {
const parentID = e.target.parentNode.id;
// Do what you want based on the parentID!
}
});
Единственная проблема, связанная с последним подходом, заключается в том, что если вы измените структуру ваших DIV - например, поместите другой внутренний контейнер вокруг изображений - он сломается, а первый - нет. В конечном итоге вам придется изменить способ обхода DOM, то есть добавить более или менее parentNodes
, возможно, также nextSiblings
. Вот почему я рекомендую первый подход.