Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

O document.getElementById não recupera o valor

O document.getElementById não esta recuperando o valor, isso no arquivo js. Quando é diretamente no Console ele funciona.

O que poderia ser ?

arquivo.html

Teste

arquivo.js

var nprimeiro = document.getElementById("primeiro"); var numero1 = nprimeiro.textContent;

console.log(nprimeiro);


O erro que aparece no console é :

TypeError: nprimeiro is null[Learn More

8 respostas

Se for um input use:

var numero1 = nprimeiro.value;

Se estiver no html use:

var numero1 = nprimeiro.innerHTML;

O problema que ele já esta vindo nulo quando tento recuperar o elemento pelo ID, isso apenas no arquvo js, quando é diretamente no console o código funciona.

nesse momento ele não recebe nada . var nprimeiro = document.getElementById("primeiro");

Tem o código fonte pra dar uma olhada?

<html>
    <head>
        <title></title>
        <script src="intro.js"></script>
    </head>
    <body>
        <input id="primeiro" type="text" value="10"></input>
    </body>
</html>
var nprimeiro = document.getElementById("primeiro");
var numero1 = nprimeiro.textContent;

console.log(nprimeiro);

Tentei fazer desta forma, mas também não deu certo.

<html>
    <head>
        <title></title>
        <script src="intro.js"></script>
    </head>
    <body>
        <h3 id="primeiro">10</h3>
    </body>
</html>

arquivo intro.js

var nprimeiro = document.getElementById("primeiro");
var numero1 = nprimeiro.textContent;

console.log(numero1);
solução!

O browser lê de cima pra baixo e como seu elemento html não foi criado ele aparece como null, então devemos colocar o js depois de criar o elemento html.

<html>
    <head>
        <title></title>

    </head>
    <body>
        <input id="primeiro" type="text" value="10"></input>
    </body>
    <script src="intro.js"></script>
</html>

Lembre de alterar o código js pois você precisa acessar o atributo value do input:

var nprimeiro = document.getElementById("primeiro");
var numero1 = nprimeiro.value;

console.log(nprimeiro);

Opa, deu certo. Não me atentei pra isto. Muito obrigado pela sua ajuda.