Есть данные в формате json. JS парсит и на их основе создает элементы на странице.
Для каждого объекта в json есть несколько элементов на странице и они связаны:
карточка элемента, элемент в меню, чекбокс. лейбл, иконка.
При клике на каждый должно происходить какое-то действие с другим связанным элементом(например, при клике на чекбокс, скрывать карточку, а при клике на карточку - подсвечивать пункт меню).
Собственно вопрос, какой из этих 2 путей выбрать и что будет оптимальнее/правильнее:
1. Создать массив, в который записывать объекты для каждого элемента, например:
var items = [];
...
var current_elem = {};
current_elem.menuDiv = createDiv();
current_elem.iconDiv = createDiv();
current_elem.cardDiv = createDiv();
current_elem.checkboxDiv = createDiv();
current_elem.labelDiv = createDiv();
items.push(current_elem);
...
И в каждом элементе в атрибуте('data-element-id') хранить порядковый номер элемента в массиве и по нему уже обращаться.
2. в каждом элементе в атрибуте('data-element-id') хранить порядковый номер элемента, но каждый раз при клике на объект вычислять зависимый через document.getElementById();
То есть нужно при клике по чекбоксу скрыть карточку - ок:
hide(document.getElementById('checkbox-for-' + this.getAttribute('data-element-id')));