Выдает NaN вместо числа

Программа должна при нажатии кнопки брать число, прибавлять к нему единицу и выводить результат. Но выводит NaN. Помогите решить!

Код HTML:

<span id="num">0</span>
<button onclick="plus()">Добавить в корзину</button>

Код JS:

function plus() {
    let num, result
    num = document.getElementById('num')
    num = parseInt(num)
    result = 'num' + 1
    document.getElementById('num').innerHTML = result
}

Ответы (4 шт):

Автор решения: IvaMuxa

function plus() {
    let num = document.getElementById('num');
    num.innerText ++;
}
<span id="num">0</span>
<button onclick="plus()">Добавить в корзину</button>

→ Ссылка
Автор решения: Che Net
<span id="num">0</span>
<button onclick="plus()">Добавить в корзину</button>

<script>
function plus() {
    let num, result;
    num = document.getElementById('num').innerHTML;
    num = parseInt(num);
    result = num + 1;
    document.getElementById('num').innerHTML = result;
}

</script>
→ Ссылка
Автор решения: OPTIMUS PRIME

num = document.getElementById('num')

Здесь в переменную num присваивается ссылка на объект HTML-элемента с id="num". Вы пытаетесь превратить объект в число, оттуда выходит NaN. Если нужна строка, написанная внутри элемента, нужно взять непосредственно её, через свойство textContent

result = 'num' + 1 ?! Всё, что пишется в кавычках - это строка. Оно не имеет никакого отношения к переменной num. А в переменную result присваивается строка 'num1'

let btn = document.getElementById("btn");

btn.addEventListener("click", function() {
  let elem = document.getElementById("num");
  let num = parseInt( elem.textContent );
  
  elem.textContent = num + 1;
});
<span id="num">0</span>
<button id="btn">Добавить в корзину</button>

Вся подобная элементарщина хорошо описана тут → http://learn.javascript.ru/

P.s. В идеале, HTML нужно использовать только для отображения данных, а не хранения. Хранить такие числа следует в переменных / массивах / объектах.

→ Ссылка
Автор решения: uberchel

Обернул ваш код в еще 1 блок родителя, для удобства навигации внутри, сейчас 1 кодом сможете проставлять в любом материале нужное количество.

let el = document.querySelectorAll('.basket button');
if (el.length > 0) {
   for (let btn of el) {
        btn.onclick = function (e) {
              let i = e.target.previousElementSibling;
              i.innerText = parseInt(i.innerText)+1;
        }
   }
}
<div class="basket">
  <span>0</span>
  <button>Добавить в корзину</button>
</div>

→ Ссылка