Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Класс с помощью classlist.add дается только 1-ой итерации

Torelka Supa Ученик (98), на голосовании 9 месяцев назад
У меня есть кусок кода :
<?php
while($review = mysqli_fetch_assoc($result)){
?>
<img width="70px" class="photo" src="/vector/usericon.png" alt=""><h2 class="title-review"><?php echo $review['name']?></h2>
<a id="delete" class="delete-vector" href="?del=<?php echo $review['id']?>"><img width="30px" src="/vector/delete.png" alt=""></a>
<div class="reviews-block">
<p class="text-review"><?php echo $review['coment']?></p></div>
<hr>
<?php
};
?>

Он выводит cодержимое столбцов на страницу.

Я хочу чтобы при определенном условии ,к <a id="delete" class="delete-vector" href="?del=<?php echo $review['id']?>"><img width="30px" src="/vector/delete.png" alt=""></a>
добавлялся класс "active".

Для этого написал js код:

 document.onkeydown = function(event){
if(event.code == "AltLeft"){
document.onkeyup = function(event){
if(event.code == "KeyK"){
document.getElementById('delete').classList.add('active');
}
}
}
}

При нажатии на alt+K он дает класс active к <a id="delete" class="delete-vector" href="?del=<?php echo $review['id']?>"><img width="30px" src="/vector/delete.png" alt=""></a> ,но из за того-что элементов больше чем 1,он дает этот класс только для первой итерации.

Остальные игнорируются.
Голосование за лучший ответ
Павел Просветленный (25617) 10 месяцев назад
Класс присваивается первому элементу не потому что их там несколько а потому что getElementById всегда возвращает 1 элемент, потому что id должен быть уникальным во всём HTML документе.
Для твоих целей нужны классы а не id.
Похожие вопросы