Mudanças entre as edições de "Javascript: elementos dinâmicos"
De Aulas
(Criou página com 'Afluentes: Desenvolvimento Front-end I, Desenvolvimento Front-end II, Usabilidade, desenvolvimento web, mobile e jogos = Elementos Dinâmicos = É possível, com...') |
|||
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | Afluentes: [[Desenvolvimento Front-end I | + | |
+ | |||
+ | Afluentes: [[Desenvolvimento Front-end I]], [[Usabilidade, desenvolvimento web, mobile e jogos]]. | ||
= Elementos Dinâmicos = | = Elementos Dinâmicos = | ||
Linha 7: | Linha 9: | ||
= Adicionando Elementos = | = Adicionando Elementos = | ||
− | <syntaxhighlight lang=html> | + | <syntaxhighlight lang="html"> |
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html> | <html> | ||
− | <head><title>Elementos Dinâmicos</title></head> | + | <head><title> Elementos Dinâmicos </title></head> |
− | <body | + | <body> |
− | <h1>Adicionar | + | <h1>Adicionar texto</h1> |
<p> | <p> | ||
Digite o texto: | Digite o texto: | ||
− | <input type="text" id=" | + | <input type="text" id="input"> |
− | + | <button onclick="adicionar();">Adicionar</button> | |
− | |||
− | <button onclick="adicionar()">Adicionar</button> | ||
</p> | </p> | ||
+ | <div id="conteudo"></div> | ||
<script> | <script> | ||
function adicionar() { | function adicionar() { | ||
− | + | const input = document.getElementById("input"); | |
− | + | const p = document.createElement("p"); | |
− | + | p.appendChild(document.createTextNode(input.value)); | |
− | + | const conteudo = document.getElementById("conteudo"); | |
− | + | conteudo.appendChild(p); | |
− | + | input.value = ""; | |
} | } | ||
</script> | </script> | ||
</body> | </body> | ||
</html> | </html> | ||
− | </syntaxhighlight> | + | </syntaxhighlight>Veja que cria um parágrafo e adicionamos o texto usando um método chamado <code>createTextNode</code> ao invés do <code>p.innerHTML</code>. Isso porque esse método de entrada é mais apropriado e seguro para o caso de entradas dinâmicas. |
= Removendo Elementos = | = Removendo Elementos = | ||
Linha 38: | Linha 39: | ||
O exemplo a seguir remove um elemento da página html. | O exemplo a seguir remove um elemento da página html. | ||
− | <syntaxhighlight lang=html> | + | <syntaxhighlight lang="html"> |
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html> | <html> | ||
− | <head><title>Elementos Dinâmicos</title></head> | + | <head><title> Elementos Dinâmicos </title></head> |
− | <body | + | <body> |
− | <h1>Remover | + | <h1>Remover Elementos</h1> |
− | <button onclick="remover()">Remover</button>< | + | <button onclick="remover();">Remover</button> |
− | + | <div id="conteudo"> | |
+ | <p id="texto">Texto que será removido....</p> | ||
+ | </div> | ||
+ | |||
<script> | <script> | ||
function remover() { | function remover() { | ||
− | + | const pai = document.getElementById("conteudo"); | |
− | + | const filho = document.getElementById("texto"); | |
pai.removeChild(filho); | pai.removeChild(filho); | ||
} | } | ||
Linha 59: | Linha 63: | ||
= Adicionando e Removendo Dinamicamente = | = Adicionando e Removendo Dinamicamente = | ||
− | <syntaxhighlight lang=html> | + | <syntaxhighlight lang="html"> |
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html> | <html> | ||
− | + | <head><title>Incluindo e Excluindo Elementos</title></head> | |
− | + | <body> | |
− | + | <h1>Cadastro de Itens</h1> | |
− | + | Texto: <input type="text" id="texto"> | |
− | + | <button onclick="adicionar();">Adicionar</button> | |
− | + | <ul id="lista"></ul> | |
− | + | <script> | |
− | + | var id = 0; // Variável global para controle de IDs | |
− | + | function adicionar() { | |
− | + | const texto = document.getElementById("texto"); | |
− | + | const lista = document.getElementById("lista"); | |
− | + | const item = document.createElement("li"); | |
− | + | // Adiciona um ID único ao item e incrementa o contador | |
− | + | item.id = `item_${id++}`; | |
− | + | item.appendChild(document.createTextNode(texto.value + " ")); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | function remover(id) { | + | // Cria o botão de remover e o adiciona ao item |
− | + | const button = document.createElement("button"); | |
− | + | button.innerHTML = "X"; | |
− | + | button.setAttribute("onclick", `remover("${item.id}");`); | |
− | + | item.appendChild(button); | |
− | + | lista.appendChild(item); | |
− | + | texto.value = ""; // Limpa o campo de texto | |
+ | texto.focus(); // Foca no campo de texto | ||
+ | } | ||
+ | |||
+ | function remover(id) { | ||
+ | const lista = document.getElementById("lista"); | ||
+ | const item = document.getElementById(id); | ||
+ | lista.removeChild(item); | ||
+ | } | ||
+ | </script> | ||
+ | </body> | ||
</html> | </html> | ||
− | </syntaxhighlight> | + | </syntaxhighlight>Veja que para colocarmos um texto no botão usamos o <code>innerHTML</code> e não o <code>createTextNode</code>. Não que não podemos usar o <code>createTextMode</code> como fizemos no exemplo anterior, mas é que como o texto do botão não é dinâmico, fica mais tranquilo usar o <code>innerHTML</code>. |
+ | |||
+ | = Atividades = | ||
+ | |||
+ | == Atividade 1 == | ||
+ | |||
+ | * Crie um documento HTML | ||
+ | * Adicione um título H1 na página com texto vazio | ||
+ | * Adicione um campo texto de entrada com ''label'' '''Nome''' | ||
+ | * Altere dinâmicamente o título H1 sempre que o usuário digitar qualquer coisa no campo texto | ||
+ | |||
+ | == Atividade 2 == | ||
+ | |||
+ | * Crie um código HTML | ||
+ | * Crie um campo texto e um botão ENVIAR | ||
+ | * crie uma lista (bullets) vazia | ||
+ | * Ao clicar no botão ENVIAR, adiciona um ítem na lista com o conteúdo do campo texto e apague o conteúdo do campo texto | ||
+ | |||
+ | == Atividade 3 == | ||
+ | |||
+ | * Crie um código HTML | ||
+ | * Crie três campos de entrada (nome, telefone, e-mail) | ||
+ | * Crie dois botões (adicionar, limpar) | ||
+ | * Crie uma tabela com três colunas e com os títulos Nome, Telefone e E-mai | ||
+ | * Ao entrar com informações nos campos texto e clicar no botão adicionar, é criada uma linha na tabela e são adicionados os dados que estavam nos campos de texto e os campos de texto são limpos | ||
+ | * Ao clicar no botão limpar, exclui todas as linhas da tabela, menos a linha de título |
Edição atual tal como às 14h47min de 6 de maio de 2025
Afluentes: Desenvolvimento Front-end I, Usabilidade, desenvolvimento web, mobile e jogos.
Elementos Dinâmicos
É possível, com o uso de Javascript, adicionar e remover qualquer tipo de elemento HTML de uma página.
Adicionando Elementos
<!DOCTYPE html>
<html>
<head><title> Elementos Dinâmicos </title></head>
<body>
<h1>Adicionar texto</h1>
<p>
Digite o texto:
<input type="text" id="input">
<button onclick="adicionar();">Adicionar</button>
</p>
<div id="conteudo"></div>
<script>
function adicionar() {
const input = document.getElementById("input");
const p = document.createElement("p");
p.appendChild(document.createTextNode(input.value));
const conteudo = document.getElementById("conteudo");
conteudo.appendChild(p);
input.value = "";
}
</script>
</body>
</html>
Veja que cria um parágrafo e adicionamos o texto usando um método chamado createTextNode
ao invés do p.innerHTML
. Isso porque esse método de entrada é mais apropriado e seguro para o caso de entradas dinâmicas.
Removendo Elementos
O exemplo a seguir remove um elemento da página html.
<!DOCTYPE html>
<html>
<head><title> Elementos Dinâmicos </title></head>
<body>
<h1>Remover Elementos</h1>
<button onclick="remover();">Remover</button>
<div id="conteudo">
<p id="texto">Texto que será removido....</p>
</div>
<script>
function remover() {
const pai = document.getElementById("conteudo");
const filho = document.getElementById("texto");
pai.removeChild(filho);
}
</script>
</body>
</html>
Adicionando e Removendo Dinamicamente
<!DOCTYPE html>
<html>
<head><title>Incluindo e Excluindo Elementos</title></head>
<body>
<h1>Cadastro de Itens</h1>
Texto: <input type="text" id="texto">
<button onclick="adicionar();">Adicionar</button>
<ul id="lista"></ul>
<script>
var id = 0; // Variável global para controle de IDs
function adicionar() {
const texto = document.getElementById("texto");
const lista = document.getElementById("lista");
const item = document.createElement("li");
// Adiciona um ID único ao item e incrementa o contador
item.id = `item_${id++}`;
item.appendChild(document.createTextNode(texto.value + " "));
// Cria o botão de remover e o adiciona ao item
const button = document.createElement("button");
button.innerHTML = "X";
button.setAttribute("onclick", `remover("${item.id}");`);
item.appendChild(button);
lista.appendChild(item);
texto.value = ""; // Limpa o campo de texto
texto.focus(); // Foca no campo de texto
}
function remover(id) {
const lista = document.getElementById("lista");
const item = document.getElementById(id);
lista.removeChild(item);
}
</script>
</body>
</html>
Veja que para colocarmos um texto no botão usamos o innerHTML
e não o createTextNode
. Não que não podemos usar o createTextMode
como fizemos no exemplo anterior, mas é que como o texto do botão não é dinâmico, fica mais tranquilo usar o innerHTML
.
Atividades
Atividade 1
- Crie um documento HTML
- Adicione um título H1 na página com texto vazio
- Adicione um campo texto de entrada com label Nome
- Altere dinâmicamente o título H1 sempre que o usuário digitar qualquer coisa no campo texto
Atividade 2
- Crie um código HTML
- Crie um campo texto e um botão ENVIAR
- crie uma lista (bullets) vazia
- Ao clicar no botão ENVIAR, adiciona um ítem na lista com o conteúdo do campo texto e apague o conteúdo do campo texto
Atividade 3
- Crie um código HTML
- Crie três campos de entrada (nome, telefone, e-mail)
- Crie dois botões (adicionar, limpar)
- Crie uma tabela com três colunas e com os títulos Nome, Telefone e E-mai
- Ao entrar com informações nos campos texto e clicar no botão adicionar, é criada uma linha na tabela e são adicionados os dados que estavam nos campos de texto e os campos de texto são limpos
- Ao clicar no botão limpar, exclui todas as linhas da tabela, menos a linha de título