JSFiddle - React, Tailwind, and code Playground

HTML

<div class="res"></div>

<div class="container">
  <div class="div">1</div>
  <div class="div">2</div>
  <div class="div">3</div>
  <div class="div">4</div>
  <div class="div">5</div>
  <div class="div">6</div>
  <div class="div">7</div>
  <div class="div">8</div>
  <div class="div">9</div>
  <div class="div">10</div>
</div>

CSS

.res{
  background-color: #f90;
  height: 30px;
  margin-bottom: 20px;
}

.div{
  background-color: #ccc;
  cursor: pointer;
  margin-bottom: 20px;
}

JavaScript

var d = document; // чтоб писать меньше

var main = d.querySelector('.container'); // получили из дом контейнер с нашими дивами, по которым хотим кликать
var res = d.querySelector('.res'); // получили контейнер, куда выведем результат клика

for(var i = 0; i < main.children.length; i++){
  /*пройдем циклом по всем детям внутри контейнера и добавим каждому аттрибут произвольного названия, который должен наинатся с data-, и установим ему значение - порядковый номер этого элемента*/
  main.children[i].setAttribute('data-key', i);
  
}

/* теперь повесим событие клика, но не на всех детей, а на внешний контейнер, потому что в браузере работает так называемое всплытие событий, когда клик по ребенку генерирует клик и по родителю, то есть все, что с детьми происходит через оч короткое время всплывает к родителям даже оставил вывод в консоль, посмотрите, что будет в зис, а что в e.target
Параметр е браузер сам передает в функцию обработчик события, если его не принять, то как бы не получится с ним работать, поэтому просто пишем, что функция принимает параметр, и теперь с объектом события можно работать, а в нем много интересного, можете вывести в консоль и посмотреть, что там есть и как это можно применить
*/
main.addEventListener('click', function(e){
  console.log('this:');
  console.log(this);
  console.log('----------');
  console.log('e.target:');
  console.log(e.target);
  // при клике достаем дата атрибут, его значение, и записываем в div.res
  res.innerHTML = e.target.getAttribute('data-key');
});

/*
 Из минусов, если предполагается добавление элементов в дом, то прежде чем добавить надо пройтись снова по всем детям и переписать им значения дата аттрибутов.
 
 Из плюсов, что событие вешается только на один элемент, и нам понадобилось только две переменные, переменную d можно было не создавать.
*/