Задать вопрос
Mesuti
@Mesuti

Не работает простой onclick?

Привет!
Почему может не работать простой onclick ?

<button class="btn">Первая кнопка</button>
<button class="btn">Вторая кнопка</button>

<script>
   var b = document.getElementsByClassName('.btn');
    b.onclick = function() {
        alert( 'Клик!' );
    };
</script>
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 2
potapchino
@potapchino
Во-первых

var b = document.getElementsByClassName('btn'); // без точки
Во-вторых
.getElementsByClassName() возвращает коллекцию элементов (button). Нужно пройтись циклом по этой колекции и каждой button повесить обработчик onclick

Array.prototype.forEach.call(b, function(button) {
	button.onclick = function(){
  	alert('Клик!');
  }
});

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Krasnodar_etc
@Krasnodar_etc
fundraiseup
А вы на всю коллекцию элементов разом повесить хотите? Не выйдет
Перебирайте в цикле, вешайте на каждый
Ответ написан
Комментировать
@Za0r
pop()
Если вы поискали, то тут множество раз задавали этот вопрос :)

document.getElementsByClassName возвращает псевдомассив DOM элементов которые имеют заданный class.
Потому если нужно повесить на всё элементы,то пройдитесь циклом и повесьте обработчики на все элементы.

Если нужен только один элемент с заданным классом,то воспользуйтесь document.querySelector;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы