1. получить родителя
2. получить всех его чилдов
3. пробежать циклом по ним, сравнивая не похож ли чилд на event.target
4. если похож, то вернуть итератор
fajjet: если уклоняться от разжеванного ответа, то мы добавляем псевдомассиву this.children метод массивов indexOf. Потом вызываем его, просим найти индекс кликнутого элемента в списке детей родительского блока.
Во время генерации блоков назначайте им какой-нибудь придуманный аттрибут, например myattr="номер позиции" и просто возьмите его значение при обработке.
Виталий Инчин: Всегда. DOM-элементам можно добавлять свои свойства, методы и т.п. Как и к почти всем другим объектам в javascript. Разве что в XHTML были какие-то ограничения. Но ваш вариант лучше, имхо.
Виталий Инчин: в большинстве браузеров можно. https://jsfiddle.net/Stalk/6x098ro6/
Возможно с "всегда" я загнул, но примерно со времен ие6, а то и раньше.
Т.е. как можно - валидатор вероятно будет ругаться, но браузер от этих левых свойств не упадет, и к ним можно достучаться через js.
Stalker_RED: в том то и дело, что валидатор ругается на них и "можно" то оно можно, как и пользовательские теги, но для кого тогда стандарты? Для кого data-атрибуты?