Я изо всех сил пытаюсь понять некоторые основы концепции, я думаю,

У меня есть эта функция JavaScript, которая принимает элемент dom и должна увеличивать его номер каждый раз, когда нажимается кнопка, дело в том, что число увеличивается один раз и никогда не увеличивается снова, console.log показывает фактическое число, но не элемент stPage. Насколько я понимаю, он должен иметь дело с сохраненным элементом DOM, поэтому мне нужно убить первого ребенка, я думаю, что сделал это, но, похоже, это не работает.

Если кто-то может мне помочь, пожалуйста, большое спасибо <3

function stpage(){

   //Setting child element + simple increment function
    let numberNode = document.getElementById('stPage');        
    let articleNumber = 0;
    articleNumber++;

    //killing the child then display the element on the page
    numberNode.removeChild(numberNode.childNodes[0]);
    document.querySelector('#stPage').innerHTML = articleNumber;

};

Изменить: articleNumber должен быть вне области действия функции.

let articleNumber = 0;

function stpage(){

    articleNumber++;
    document.querySelector('#stPage').innerHTML = articleNumber;

};
0
HypeLiveUsb 5 Май 2021 в 00:45

1 ответ

Лучший ответ

Вы повторно инициализируете articleNumber значением 0 каждый раз, когда вызывается функция в этой строке:

let articleNumber = 0;

Это должно быть примерно так:

let articleNumber = 0; // outside function scope, doesn't reset

function stpage() {
  let numberNode = document.getElementById('stPage'); 
  articleNumber++;
  numberNode.innerHTML = articleNumber;
};
0
T J 4 Май 2021 в 21:48