Top.Mail.Ru
Ответы

Помогите с кодом JS

Я не понимаю почему код не работает , на видео он работает и я понимаю что возможно я допустил ошибку или не там поставил пробел , но я не понимаю где! Даже чат gpt мне непомог

Код


<main class="main">
<div class="container div_one">
<div class="div_one-inside">
<button class="button" onclick="console.log(`Сумма= ${summ = sum+1)}">Добавить товар</button>
<button class="button" onclick="console.log(`Сумма= ${summ = sum-1)}">Удалить товар</button>
<button class="button" onclick="console.log(`Сумма= ${summ = sum+2)}">Добавить два товара</button>
<div class="divbutton" onclick="console.log(`Сумма= ${summ = sum-2)}">Удалить два товара</div>
</div>
<a href="" class="number__products">
<div>
Количество товаров: <span class="summ">0</span>
</div>
</a>
</div>
</main>
<footer></footer>
<script src="script.js">let summ = 0;</script>
</body>

По дате
По Рейтингу
Аватар пользователя
Новичок
9мес

1. Скорее всего опечатка в переменных: использовались и sum, и summ, из-за чего всё ломалось.

2. Переменная summ объявлялась неправильно и не работала.

3. Значение счётчика обновлялось только в консоли, но не на странице.

4. Можно было получить отрицательное количество товаров.

5. Код повторялся в каждой кнопке.

12345678910111213141516171819202122232425262728293031323334
 <main class="main"> 
  <div class="container div_one"> 
    <div class="div_one-inside"> 
      <button class="button" onclick="addProduct(1)">Добавить товар</button> 
      <button class="button" onclick="removeProduct(1)">Удалить товар</button> 
      <button class="button" onclick="addProduct(2)">Добавить два товара</button> 
      <div class="divbutton" onclick="removeProduct(2)">Удалить два товара</div> 
    </div> 
    <a href="#" class="number__products"> 
      <div> 
        Количество товаров: <span id="summ">0</span> 
      </div> 
    </a> 
  </div> 
</main> 
<footer></footer> 
<script> 
  let sum = 0; 
   
  function updateSum(value) { 
    sum += value; 
    if (sum < 0) sum = 0; 
    document.getElementById('summ').textContent = sum; 
    console.log(`Сумма = ${sum}`); 
  } 
 
  function addProduct(count) { 
    updateSum(count); 
  } 
 
  function removeProduct(count) { 
    updateSum(-count); 
  } 
</script> 
Аватар пользователя
Просветленный
9мес

Ты в блокноте что-ли код пишешь?
Тебе любой редактор кода скажет в чём твоя ошибка и подчеркнёт нужное место красным.
У тебя куча проблем:

  1. Указан скрипт как внешний (script.js), но при этом пишешь код локально.

  2. Почему-то поместил код в конец, от чего переменная summ ещё не объявлена внутри console.log.

  3. Переменная sum не существует.

  4. Отсутствует закрывающей кавычки внутри console.log.

  5. Фигурная и круглая скобки поменены местами внутри console.log.

  6. Создаёшь элемент с классом summ, но вместо него для вывода используешь console.log.

Зачем тебе переписывать код, функционал которого тебе не понятен? Каждая написанная строка должна быть со смыслом. Надо начинать с основ а не переписывать непонятный код с видео, ещё и с кучей ошибок.

Аватар пользователя
Мудрец
9мес

Ошибка в атрибуте onclick: В атрибутах onclick у вас неправильно закрываются скобки в выражениях ${summ = sum+1)}, ${summ = sum-1)}, ${summ = sum+2)}, ${summ = sum-2)}. Скобка должна быть закрыта перед знаком доллара: ${summ = sum+1}), ${summ = sum-1}), ${summ = sum+2}), ${summ = sum-2}).

Неопределенная переменная sum: В вашем коде используется переменная sum, но она не определена нигде в вашем HTML или JavaScript.

Неправильное использование <script>: Вы объявляете переменную summ внутри тега <script>, который ссылается на внешний файл script.js. Это не будет работать, так как содержимое тега <script> не выполняется, если указан атрибут src.

Неправильное использование <a>: Элемент <a> используется без атрибута href, что может вызвать проблемы с доступностью и поведением в браузере.

Правильный код:


1234567891011121314151617181920212223242526272829
 <title>Document</title> 
    <script> 
        let sum = 0; 
        function updateSum(value) { 
            sum += value; 
            document.querySelector('.summ').textContent = sum; 
            console.log(`Сумма= ${sum}`); 
        } 
    </script> 
</head> 
<body> 
<main class="main">  
    <div class="container div_one">  
        <div class="div_one-inside">  
            <button class="button" onclick="updateSum(1)">Добавить товар</button>  
            <button class="button" onclick="updateSum(-1)">Удалить товар</button>  
            <button class="button" onclick="updateSum(2)">Добавить два товара</button>  
            <div class="divbutton" onclick="updateSum(-2)">Удалить два товара</div>  
        </div>  
        <a href="#" class="number__products">  
            <div>  
                Количество товаров: <span class="summ">0</span>  
            </div>  
        </a>  
    </div>  
</main>  
<footer></footer>  
<script src="script.js"></script>  
</body> 
Аватар пользователя
Оракул
9мес
1234567891011121314151617181920212223242526272829303132
 <!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>Document</title> 
    <link rel="stylesheet" href="style.css"> 
</head> 
<body> 
<script> 
    let summ = 0;  
</script> 
 
<main class="main">  
    <div class="container div_one">  
        <div class="div_one-inside">  
            <button class="button" onclick="console.log(`Сумма= ${summ = summ + 1}`); document.querySelector('.summ').textContent = summ;">Добавить товар</button>  
            <button class="button" onclick="console.log(`Сумма= ${summ = summ - 1}`); document.querySelector('.summ').textContent = summ;">Удалить товар</button>  
            <button class="button" onclick="console.log(`Сумма= ${summ = summ + 2}`); document.querySelector('.summ').textContent = summ;">Добавить два товара</button>  
            <div class="divbutton" onclick="console.log(`Сумма= ${summ = summ - 2}`); document.querySelector('.summ').textContent = summ;">Удалить два товара</div>  
        </div>  
        <a href="" class="number__products">  
            <div>  
                Количество товаров: <span class="summ">0</span>  
            </div>  
        </a>  
    </div>  
</main>  
<footer></footer>  
 
</body> 
</html> 
Аватар пользователя
Гуру
9мес

Что за src="script.js"?