Oi, Daniel, tudo bem?
Eu tentei reproduzir o problema mas de outra forma, de uma forma menos verbosa, mais semâtica e com o auxílio do css. Aqui vai o código:
<!doctype html>
<html lang="pt-br">
<head>
<title>Tabuada</title>
<meta charset="utf-8" />
</head>
<body>
<style>
body{
text-align:left;
background-color: lightcyan;
}
#container{
text-align:left;
}
</style>
<h1>Div com Tabuada </h1>
<form>
<div>
<p>Qual tabuada deseja saber? </p>
<input type="text" name="numero" id="number" required />
<button type="button" onclick="tabuada();">Calcular</button>
</div>
<div id="container"></div>
</form>
<script>
function tabuada(){
let number = parseInt(document.getElementById("number").value);
document.getElementById("container").innerHTML = "";
for (let i = 0; i < 11; i++ ) {
document.getElementById("container").innerHTML += number + " x " + i + " = " + (number * i)+"<br />";
}
}
</script>
</body>
</html>
Nesse código, que está em um arquivo html, utilizamos o html, css e js, mas tudo em conjunto e cada um fazendo o seu papel. Vamos ao código:
Esse trecho ele é o coração da execução, porque é onde recebemos o valor que o usuário informa e onde evento de click do botão aciona a função tabuada onde está o cálculo. E logo depois temos, a div que irá conter o resultado do operação feita. A tag input ela é extremamente poderesa, veja que quando estabeleço os seus types eu direciono o meu input para receber um determinado tipo de valor do meu usuário: texto, data, email, número de telefone...
<form>
<div>
<p>Qual tabuada deseja saber? </p>
<input type="text" name="numero" id="number" required />
<button type="button" onclick="tabuada();">Calcular</button>
</div>
<div id="container"></div>
</form>
Aqui é onde ele recebe o valor dado pelo usuário: <input type="text" name="numero" id="number" required />
E aqui <button type="button" onclick="tabuada();">Calcular</button>
équando o botão é clicado e chama a function tabuada
A segunda parte mais importante do nosso código é a função tabuada que manipula a <div id="container"></div>
que irá receber o cálculo. Vamos a ele:
function tabuada(){
let number = parseInt(document.getElementById("number").value);
document.getElementById("container").innerHTML = "";
for (let i = 0; i < 11; i++ ) {
document.getElementById("container").innerHTML += number + " x " + i + " = " + (number * i)+"<br />";
}
}
Na primeira linha criamos a variável number para pegar o valor da id number, ou seja, o valor que foi digitado pelo usário é onde ficará alocada.
Já aqui document.getElementById("container").innerHTML = "";
eu capturo a id da nossa div container e adiciono um espaço vazio nela que será preenchido posteriormente com o cálculo.
for (let i = 0; i < 11; i++ ) {
document.getElementById("container").innerHTML += number + " x " + i + " = " + (number * i)+"<br />";
}
Nesse trecho acima, temos o cálculo em si que fará a nossa tabuada acontecer. O for é o nosso loop que irá girar 10 vezes (regra da tabuada) e incrementar o valor do multiplicador (indíce i*), ou seja, a cada volta do loop enquanto for menor 11, a variável *i passa de 1, na segunda volta é 2 e assim por diante. E finalmente, document.getElementById("container").innerHTML += number + " x " + i + " = " + (number * i)+"<br />";
nessa linha nós imprmimos o cálculo dentro da div container.
Para finalizar, tem alguns estilos dentro da tag style para tag body e para o div container:
<style>
body{
text-align:left;
background-color: lightcyan;
}
#container{
text-align:left;
}
</style>
Talvez não tenha conseguido explicar tão bem e não sei se é o que deseja. Mas analise o código com calma, mexa nele, debbugue ele para compreender melhor o funcionamento. E se ficou qualquer dúvida é só falar :}
Esperamos ter te ajudado!