Método getElementById()
O método getElementById() permite obter um elemento do documento a partir de seu atributo ID especificado.
É um método importante e muito empregado para obter informações ou manipular um elemento em um documento HTML. É suportado atualmente por todos os navegadores mais comuns.
Este método retorna o valor null se nenhum elemento com o id especificado for encontrado.
Sintaxe:
document.getElementById("ID");
Onde o parâmetro ID é o valor do atributo id do elemento que desejamos obter.
Uma observação importante: o atributo ID é uma string case-sensitive, ou seja, que diferencia maiúsculas de minúsculas.
Como trabalhar com a propriedade value
Podemos utilizar a propriedade value para obter e manipular o valor inserido em um controle como textbox, password, textarea ou outros controles específicos em um formulário:
var item = document.getElementById("id-controle");
// Para verificar o valor:
console.log(item.value);
Podemos modificar o valor do controle por meio da propriedade value também:
item.value = "Novo valor atribuído";
Como trabalhar com a propriedade innerHTML
Podemos também obter ou modificar o valor presente em um elemento fora de um formulário, como um parágrafo <p> ou <span>, usando a propriedade innerHTML:
1 – Ler o valor de um elemento de id ID_elemento:
var x = document.getElementById("ID_elemento").innerHTML;
2 – Modificar o valor de um elemento de id ID_elemento:
document.getElementById("ID_elemento").innerHTML = "Novo valor";
Exemplos
Exemplo 01
Capturamos o texto digitado em uma caixa de texto do tipo input box e realizamos algumas ações sobre esse valor:
- Exibir uma mensagem em uma caixa de alerta
- Copiar o valor dessa caixa de texto para outra caixa de texto
- Escrever o valor no corpo da página, usando um elemento <span> e a propriedade innerHTML do objeto.
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<title>getElementById JavaScript</title>
<meta charset="UTF-8">
<script>
function mensagem() {
var valorNome = document.getElementById("idNome").value;
// Exibir mensagem em caixa de alerta:
alert("Bem-vindo, " + valorNome);
// Copiar valor de uma caixa de texto para outra:
document.getElementById("idNomeDigitado").value = document.getElementById("idNome").value;
// Escrever na página (usando conteiner span):
document.getElementById("mostraValor").innerHTML = "Muito bem, " + valorNome + " !";
}
</script>
</head>
<body>
<p>Usando JavaScript getElementById</p>
<form name="teste" method="GET" >
<input type="text" name="nome" id="idNome"><br>
<input type="text" name="nomeDigitado" id="idNomeDigitado">
<button type="button" name="botao" id="idBotao" onclick="mensagem();">Clique Aqui</button>
</form>
<p><span id="mostraValor"></span></p>
</body>
</html>
Exemplo 02
Alteramos a cor de um elemento da página pressionando botões. Para isso vamos alterar as propriedades style.color, style.backgroundColor e style.borderBottom do elemento. Para isso criaremos duas funções distintas, mudaCor() e mudaCorFundo():
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<title>Exemplo getElementById</title>
<meta charset="UTF-8">
<script>
estado = 0;
function mudaCor(cor) {
var elemento = document.getElementById("item");
elemento.style.color = cor;
}
function mudaCorFundo(cor) {
var elemento = document.getElementById("item");
if (estado == 0) {
elemento.style.backgroundColor = "lightblue";
elemento.style.borderBottom = "3px solid purple";
estado = 1;
}
else {
elemento.style.backgroundColor = "white";
elemento.style.borderBottom = "none";
estado = 0;
}
}
</script>
</head>
<body>
<p>Se inscreva no canal da <span id="item">Bóson Treinamentos em Tecnologia</span>!</p>
<button onclick="mudaCor('green');">Verde</button>
<button onclick="mudaCor('magenta');">Magenta</button>
<br><br>
<button onclick="mudaCorFundo('blue');">Cor de fundo Azul</button>
</body>
</html>
Exemplo 03
Vamos criar um script que permite calcular o quadrado de um número digitado em uma caixa de input, exibindo o resultado em outra caixa de input e também no corpo da página:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<title>getElementById JavaScript</title>
<meta charset="UTF-8">
<script>
function calculaQuadrado() {
var valor = document.getElementById("idNumero").value;
// Calcular quadrado e inserir valor calculado na caixa de texto adequada:
var quadrado = valor * valor;
document.getElementById("idCalculado").value = quadrado
// Escrever na página (usando conteiner span):
document.getElementById("calculaValor").innerHTML = "O quadrado calculado é " + quadrado + " .";
document.getElementById("numeroDigitado").innerHTML = "O quadrado de " + valor + " é: ";
// Para testes apenas:
console.log(idNumero.value);
}
</script>
</head>
<body>
<h2>Calcular o quadrado de um número</h2>
<form name="formTeste" method="GET" >
<input type="text" name="numero" id="idNumero"><br><br>
<button type="button" name="botao" id="idBotao" onclick="calculaQudrado();">Calcular Quadrado!</button><br><br>
<label for="idcalculado"><span id="numeroDigitado"></span></label>
<input type="text" name="valorQuadrado" id="idCalculado">
</form>
<p><span id="calculaValor"></span></p>
</body>
</html>
Exemplo 04
Agora vamos trabalhar com uma caixa de cores (HTML5), que nos permitirá selecionar as cores do texto e de fundo a serem aplicadas em um conteiner <span>:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<title>Exemplo getElementById</title>
<meta charset="UTF-8">
<script>
estado = 0;
function mudaCores() {
var elemento = document.getElementById("item");
var cor = document.querySelector("#paletaCor");
var corFundo = document.querySelector("#paletaCorFundo");
if (estado == 0) {
elemento.style.color = cor.value;
elemento.style.backgroundColor = corFundo.value;
elemento.style.border = "3px solid purple";
elemento.style.fontSize = "200%";
estado = 1;
}
else {
elemento.style.color = "black";
elemento.style.backgroundColor = "white";
elemento.style.border = "none";
elemento.style.fontSize = "100%";
estado = 0;
}
}
</script>
</head>
<body>
<p>Se inscreva no canal da <span id="item">Bóson Treinamentos em Tecnologia</span>!</p>
<label for="paletaCor">Cor do texto:</label>
<input type="color" value="#0000ff" id="paletaCor">
<label for="paletaCorFundo">Cor do fundo:</label>
<input type="color" value="#0000ff" id="paletaCorFundo">
<br><br>
<button onclick="mudaCores();">Aplica Cores Selecionadas</button>
</body>
</html>
Visualização:
Usando o método getElementById e caixa de Cores HTML para alterar cor de texto
Note que usamos um novo método: document.querySelector(). Este método permite ler um elemento HTML, recebendo como parâmetro um seletor CSS – no caso, usamos o ID da caixa de cores (elemento color). Se for usado o método getElementById() obteremos o mesmo resultado aqui – tente alterar o método para testar!
Falaremos de forma mais aprofundada sobre o querySelector() em outra lição.
