@intriga93

Как правильно обновить общую сумму?

подитог в итемах правильно обновляется
а общий тотал - нет ( .total после клика на кнопки + или -)
https://jsfiddle.net/tq7k3a92/6/
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Вот вариант решения. На проблемную строку указал Дмитрий Беляев.
Помимо сомнительного решения хранить данные в DOM так же дополню:
1) Используйте const по умолчанию, let только если будете менять значение переменной. При этом, если в переменной объект или массив, а Вы меняете свойство объекта или элементы массива, то это тоже const.
2) Не надо обращаться в DOM при вызове функции, чтобы найти там какой-то элемент. Элемент никуда не девается в Вашем случае. Соответственно, элемент лучше найти один раз вне функции, а внутри функции только обращаться к переменной, которая хранит этот элемент. Поиск в DOM одна из самых медленных операций.
3) Не используйте innerHTML без реальной необходимости. textContent в Вашем случае лучше подходит. Так быстрее и безопаснее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Дело в этой строке:
total.innerHTML = Number(item.textContent) + Number(item.textContent);
в total по сути выводится последний элемент умноженный на 2.

Ну и хранить данные в DOM, и каждый раз парсить из текста числа - так себе идея.
Хранити данные в переменных и в виде чисел, а DOM используйте только для отрисовки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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