Не получается в Div добавить значение через onclic, что я делаю не так?

Здравствуйте, товарищи!
Суть скрипта следующая.
Есть 2 Div`а
Div1 - пустой, при клике суммирует свое значение со значением Div2;
Div2 - при открытии страницы и при последующих кликах на Div1 генерирует рандомное число;

Не могу понять, почему, если я передаю в getElementByID строковую переменную, а не конкретный ID, то при нажатии на Div1 не происходит его изменения, но генерация нового значения Div2 происходит.

Сам код:
window.onload = function() {
    setNextNum(); 
    var nextNum = document.getElementById("nextNumDiv").innerHTML;
 
//Функция генерации следующего числа и запись его в ячейку 2
    function setNextNum () {
        var number = Math.floor(Math.random()*9+1);
        var nextNum = document.getElementById("nextNumDiv");
        nextNum.innerHTML = number;
    }

//Функция добавления в ячейку
 function addNextNum (num){
        var stat = document.getElementById(num).innerHTML;
        stat = 1*stat+1*nextNum;
        if (stat==null) {
            stat=0;
        }
       console.log(stat);
        this.innerHTML = stat;
        setNextNum();
        nextNum = document.getElementById("nextNumDiv").innerHTML;
}
//Запуск функции добавления в Ячейку a0
    a0.onclick = function(){
        addNextNum("a0");
    }

    
}


Что самое интересное, если я прописываю всю функцию в onclick с указанием ID блока, то все прекрасно работает (см. код ниже). Но, к сожалению. мне нужно реализовать именно первый вариант.

a0.onclick = function() {
        var stat = document.getElementById("a0").innerHTML; 
        stat = 1*stat+1*nextNum;
        if (stat==null) {
            stat=0;
        }
       
        this.innerHTML = stat;
        setNextNum();
        nextNum = document.getElementById("nextNumDiv").innerHTML;
    }
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
@pudovMaxim
web-developer
document.getElementById("a0").onclick = .....

UPD: верная заметка о том, что и так будет работать.
Но я нашел другую штуку - в функции addNextNum есть обращение к this. Т.к. функция была объявлена в глобальном скоупе, то скорей всего this будет указывать на window.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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