Это происходит потому, что вы получаете только сам элемент с вашим текущим кодом JavaScript. Вы должны использовать свойства innerHTML
, innerText
или textContent
, чтобы получить значение, которое оно содержит. Обратите внимание, что все они возвращают строку, поэтому вам следует проанализировать их значения, прежде чем использовать .
В вашем случае, я считаю, что innerHTML
- это то, что лучше всего подходит. Итак, вот что вам следует делать:
var num1 = parseInt(document.getElementById("1").innerHTML);
Повторите этот код для num1
- num9
, и вам должно быть хорошо go.
Внутренний HTML Свойство
Из определения W3Schools:
Внутреннее свойство HTML устанавливает или возвращает HTML содержимое (внутреннее HTML) элемента.
Пример ниже может прояснить, как .innerHTML
работает немного лучше:
// From your example:
var num1 = document.getElementById('1').innerHTML;
console.log("<button> holds:", num1);
// From other use cases
let h = document.querySelector('#heading').innerHTML;
let p = document.querySelector('#paragraph').innerHTML;
console.log('<h1> holds: ', h) ;
console.log('<p> holds: ', p);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>innerHTML Example</title>
</head>
<body>
<!-- Your example -->
<button id="1">1</button>
<!-- Other use cases -->
<h1 id="heading">This is a heading</h1>
<p id="paragraph">This is a paragraph</p>
</body>
</html>
См. HTML DOM inner HTML Property в W3Schools для получения дополнительной информации.