Получить свойство объекта, название которого соответствует id элемента html на который я кликаю
Есть несколько элементов с классом "booster" с разными значениями атрибута id, так же есть объект в js для каждого элемента (на скриншоте пример объекта).
При клике на такой элемент я хочу брать его уникальный id и выводить в консоль свойство объекта. Этот самый id и название объекта имеют одинаковое значение.
У меня получилось подобрать id, но свойство - нет. "indefined"
Ответы (1 шт):
Автор решения: Михаил Камахин
→ Ссылка
const boosterNode = document.querySelectorAll('.booster');
const result = document.querySelector('.result');
const boosterArray = [{
name: 'booster1',
id: 1
},
{
name: 'booster2_DANGER',
id: 2
},
{
name: 'booster3',
id: 3
}
];
boosterNode.forEach((item) => {
item.addEventListener('click', (e) => {
result.innerHTML = '';
const myObj = boosterArray.find((_item) => _item.name === item.id);
if (myObj !== undefined) {
for (let key in myObj) {
result.innerHTML += key + ': ' + myObj[key] + '<br>';
}
} else {
result.innerHTML = '<div class="danger">ОШИБКА!</div>';
}
});
});
.booster {
background-color: black;
width: 50px;
height: 50px;
margin-top: 10px;
}
.danger {
font-size: 70px;
animation: anime 0.5s ease-in-out;
transform-origin: center center;
display: inline-block;
color: red;
}
@keyframes anime {
0% {
transform: scale(0);
}
100% {
transform: scale(1);
}
}
<div class="booster" id="booster1"></div>
<div class="booster" id="booster2"></div>
<div class="booster" id="booster3"></div>
<div class="result"></div>


