WDD 131: Fundamentos da Web Dinâmica

S02 – Atividade de Aprendizagem: Modelo de Objeto de Documento

Visão Geral

Uma habilidade essencial para qualquer desenvolvedor web front-end é a capacidade de usar DOM (DOM), um objeto JavaScript que é criado depois que o navegador renderiza o documento a primeira vez. Usar o DOM significa ler, editar, atualizar ou excluir o documento, incluindo propriedades CSS, de forma dinâmica. Essencialmente, o DOM é o esboço dos nós HTML e do conteúdo.

Esta atividade tem como objetivo apresentar o DOM HTML e ensinar a utilizar o documento com JavaScript.

Objetivos Adicionais de Aprendizagem do Curso

Demonstrar proficiência na sintaxe da linguagem JavaScript.
Usar JavaScript para responder a eventos e modificar HTML de forma dinâmica.

Preparação

▶️ O que é o DOM em JavaScript (5:23)

Instruções da Atividade

Exemplo de captura de tela da aplicação do capítulo do Livro de Mórmon

Esta aplicação do Livro de Mórmon será adicionada em futuras atividades de aprendizagem. Começamos agora com a interface e as atribuições básicas do DOM e a construção.

Esta aplicação permite que os usuários insiram seus capítulos favoritos do Livro de Mórmon e os exibam em uma lista que é atualizada automaticamente na tela. As entradas podem então ser excluídas da lista exibida.

  1. Crie um arquivo HTML chamado "bom.html" na pasta semana02.
  2. Seu documento HTML bom.html deve incluir as meta tags básicas e um título apropriado.
  3. Crie um arquivo CSS externo e um arquivo JS e coloque-os em subpastas apropriadas dentro da pasta semana02.
    Avalie Seu Conhecimento

    Na pasta semana02, crie duas pastas chamadas estilos e scripts. Seu arquivo CSS irá para a pasta estilos e seu arquivo JavaScript irá para a pasta scripts. Você já tem pastas na raiz wdd131 chamadas estilos e scripts, mas isso não tem problema. Trataremos esta pasta semana02 de forma independente da pasta raiz externa wdd131.

  4. Copie e cole a interface básica (HTML e CSS) do seguinte CodePen ☼ O Livro de Mórmon - 10 principais.
  5. No seu arquivo js em branco, declare 3 (três) variáveis que contenham referências aos elementos input, button (botão) e list (lista).
    Avalie Seu Conhecimento
            const input = document.querySelector('#capfav');
    const botao = document.querySelector('button');
    const lista = document.querySelector('______'); // você precisa preencher o espaço em branco para referenciar o elemento HTML que é um elemento de lista não ordenada.
  6. Crie um elemento li que conterá o título do capítulo de cada entrada e um botão de exclusão associado.
    Avalie Seu Conhecimento
    const li = document.createElement('li');

    Identificamos essa variável como li, mas isso foi apenas para simplificar.
    O identificador/nome da variável não precisava ter o mesmo nome do elemento que estava sendo criado.

  7. Crie um botão de exclusão.
    Avalie Seu Conhecimento
    const botaoExcluir = document.createElement('button');
  8. Preencha o textContent ou innerHTML da variável do elemento li com o valor de entrada.
    Avalie Seu Conhecimento
    li.textContent = input.value;

    textContent é preferível a innerHTML, pois é mais seguro.
    Contudo, se você precisar incluir tags HTML, use innerHTML.
    textContent não renderizará tags HTML. Ele exibirá as tags como texto.

    Por que a propriedade value é usada?
    Porque a variável input faz referência a um campo de texto de entrada HTML e é isso que se deseja, ou seja, a entrada do usuário. Aqui está o HTML que foi fornecido: <input type="text" id="capfav" placeholder="Alma 5">

  9. Preencha o texto do botão TextContent com ❌.
    Avalie Seu Conhecimento
    botaoExcluir.textContent = '❌';
  10. Anexe a variável do elemento li com o botão de exclusão.
    Avalie Seu Conhecimento
    li.append(botaoExcluir);
  11. Anexe a variável do elemento li à lista não ordenada no seu HTML.
    Avalie Seu Conhecimento
    lista.append(li);

Até agora, você configurou a interface e concluiu algumas interações básicas com o DOM. O aplicativo não funcionará agora. A próxima atividade ensinará como responder a eventos, como quando o usuário clicar em botões. Você também precisa esperar que o usuário preencha algo no campo de texto do capítulo favorito antes do processamento.

Você precisa considerar os leitores de tela e como eles interpretarão qualquer coisa no conteúdo. Por exemplo, o botão excluir tem apenas um emoticon e pode não ser interpretado corretamente como o botão para remover um capítulo. O que podemos fazer? Uma solução é criar um atributo aria-label no botão com um valor como "Excluir Alma 5".

<button aria-label="Close" id="close-button">❌</button>

Fazer isso ajuda os leitores de tela a entenderem a finalidade do botão, tornando sua aplicação mais acessível.

Envio


+