< Return to Video

Criando elementos do zero (Versão Vídeo)

  • 0:01 - 0:07
    Até agora, nós modificamos um monte
    de elementos existentes na página.
  • 0:07 - 0:10
    Mas e se quiséssemos adicionar
    novos elementos na página?
  • 0:10 - 0:15
    Poderíamos fazer isso com 'innerHTML',
    escrevendo o HTML para as tags
  • 0:15 - 0:19
    dentro da cadeia de caracteres que
    passamos, como fizemos aqui.
  • 0:19 - 0:22
    Isso pode ficar um pouco bagunçado,
    especialmente se você quer criar
  • 0:22 - 0:26
    múltiplas tags com diferentes
    atributos, estilos e classes.
  • 0:26 - 0:31
    Então, em vez disso, podemos usar um
    conjunto inteiro de métodos de documento
  • 0:31 - 0:35
    para criar novos elementos do zero
    e adicioná-los na página.
  • 0:36 - 0:41
    Vamos dizer que queremos adicionar
    uma imagem de um gato na página
  • 0:41 - 0:44
    porque nós não achamos
    que tem o suficiente ainda.
  • 0:44 - 0:49
    O primeiro passo é criar esse
    novo elemento '< img >' , certo?
  • 0:49 - 0:51
    Nós queremos criá-lo.
  • 0:51 - 0:56
    Então vamos começar criando
    uma variável para guardá-lo, catEl
  • 0:56 - 1:01
    E então vamos usar
    document.createElement
  • 1:01 - 1:07
    e passar o nome da tag
    que estamos criando, img.
  • 1:07 - 1:12
    Então agora você pode imaginar que
    o navegador fez uma tag de imagem, assim.
  • 1:12 - 1:15
    E está flutuando no espaço em algum lugar.
  • 1:16 - 1:19
    Próximo passo é atribuir uma fonte a ele.
  • 1:19 - 1:23
    Então, catEl.src é igual a...
  • 1:23 - 1:29
    e vamos pegar nossa fonte daqui de cima.
  • 1:31 - 1:35
    - deveríamos adiciona um alt para fazer
    essa imagem mais acessível -
  • 1:35 - 1:42
    não andei fazendo isso, mas deveria
    sempre ter alt tags em nossas imagens.
  • 1:42 - 1:47
    Então agora você pode imaginar que essa
    tag '< image >' que nós fizemos
  • 1:47 - 1:58
    tem um 'src' e também tem
    um 'alt = "Foto de um gato fofo".
  • 1:58 - 2:05
    Então isso é o que fizemos
    usando JavaScript aqui.
  • 2:05 - 2:09
    A tag '< img >' que fizemos
    ainda está flutuando no espaço
  • 2:09 - 2:12
    porque nós não dissemos
    ao navegar onde colocá-la.
  • 2:12 - 2:16
    E há tantos lugares diferentes
    em nosso DOM em que ela poderia ir.
  • 2:16 - 2:21
    Vamos fazer a coisa mais fácil e apenas
    fazer ela aparecer no final da página.
  • 2:21 - 2:26
    Podemos fazer isso colocando ela
    no final da tag '< body >', então dizemos:
  • 2:26 - 2:30
    document.body.appendChild(catEl);
  • 2:30 - 2:31
    Aí está ela!
  • 2:31 - 2:33
    É bem grande também.
  • 2:33 - 2:35
    Gato muito grande - assustador.
  • 2:35 - 2:41
    Você pode chamar 'appendChild' em
    qualquer nó DOM existente em sua página
  • 2:41 - 2:47
    e isso fará o elemento passado
    o filho final desse nó.
  • 2:47 - 2:52
    Isso é onde realmente ajuda
    visualizar o DOM como uma árvore.
  • 2:52 - 2:58
    A tag '< body >' é um nó nessa árvore
    e tem um monte de filhos
  • 2:58 - 3:00
    como '< h1 >' e '< p1 >'
  • 3:00 - 3:04
    e você está adicionando mais
    um filho no final de seus filhos.
  • 3:04 - 3:09
    Então, na verdade, ela estaria depois
    da tag '< script >', logo aqui.
  • 3:09 - 3:13
    Usando métodos DOM, você deveria em teoria
    ser capaz de adicionar elementos
  • 3:13 - 3:16
    em qualquer lugar dentro da árvore DOM.
  • 3:16 - 3:19
    Apenas colocamos no lugar
    mais fácil e mais óbvio.
  • 3:20 - 3:22
    Vamos fazer mais um exemplo.
  • 3:22 - 3:28
    Usamos 'innerHTL' aqui embaixo para pôr
    a tag '< strong >' dentro de '< span >'.
  • 3:28 - 3:31
    Em vez disso, poderíamos
    usar 'createElement'.
  • 3:31 - 3:40
    var strongEl =
    document.createElement("strong");
  • 3:40 - 3:44
    E eu escrevi errado
    e a grafia é muito importante.
  • 3:44 - 3:49
    Então isso cria uma tag '< strong >'
    vazia, flutuando no espaço.
  • 3:49 - 3:52
    Então, a primeira coisa que vamos
    fazer é definir o seu texto.
  • 3:52 - 3:57
    strongEl.textContent = "cat";
  • 3:57 - 3:58
    Certo?
  • 3:58 - 4:02
    Alternativamente, na verdade,
    poderíamos fazer essa coisa onde
  • 4:02 - 4:05
    criamos o que é conhecido
    como um 'textNode'.
  • 4:05 - 4:09
    Muitos nós DOM na árvore DOM podem
    ter tipos especiais de nós, 'textNode's,
  • 4:09 - 4:11
    como seus filhos.
  • 4:11 - 4:15
    E esses nós não são elementos mas
    eles ainda são nós na árvore DOM.
  • 4:15 - 4:18
    Nós chamamos eles de
    "nós folhas" porque eles são
  • 4:18 - 4:20
    a última coisa mesmo
    que pode ter em uma árvore.
  • 4:20 - 4:28
    var strongText =
    document.createTextNode("cat");
  • 4:28 - 4:32
    E vamos apenas passar o texto, "cat".
  • 4:32 - 4:34
    Se usarmos essa técnica, nós agora
  • 4:34 - 4:42
    criamos dois nós que estão flutuando
    no espaço: uma tag '< strong >'
  • 4:42 - 4:47
    e então esse 'textNode',
    que apenas diz "cat".
  • 4:47 - 4:50
    E nós precisamos conectá-los um ao outro.
  • 4:50 - 4:55
    E queremos a tag '< strong >'
    para ser o pai de "cat".
  • 4:55 - 5:03
    Então o que vamos fazer é dizer
    'strongEl.appendChild(strongText);'
  • 5:03 - 5:12
    Então agora nós temos a tag
    '< strong >' com "cat" dentro,
  • 5:12 - 5:19
    e temos que colocá-la onde queremos
    porque ela ainda está flutuando no espaço.
  • 5:19 - 5:25
    Nós estamos dentro do loop for
    para 'nameEls', e cada 'nameEl'
  • 5:25 - 5:27
    está onde queremos colocar
    a tag '< strong >'.
  • 5:27 - 5:35
    Então aqui,
    'nameEls[i].appendChild(strongEl);'
  • 5:35 - 5:42
    E agora nós vemos duplicado
    porque eu deixei o jeito antigo.
  • 5:42 - 5:47
    Ali está adicionando à tag '< span >'
    que já tem uma tag '< strong >' nela.
  • 5:47 - 5:52
    Poderíamos mudar essa linha para
    'innerHTML' é igual a uma string vazia
  • 5:52 - 5:58
    que vai efetivamente limpar a span
    antes de adicionarmos a ela.
  • 5:58 - 6:05
    Agora como você viu, isso levou muito mais
    linhas de código que a versão 'innerHTML'.
  • 6:05 - 6:07
    Então, por quê fizemos isso?
  • 6:07 - 6:11
    Bem, muitos desenvolvedores não gostam
    de modificar o documento desse jeito
  • 6:11 - 6:13
    porque precisa de muito mais código.
  • 6:14 - 6:17
    A maioria dos desenvolvedores usa
    bibliotecas, como jQuery,
  • 6:17 - 6:21
    para fazer modificações no DOM por eles,
    o que provê funções que
  • 6:21 - 6:27
    fazem o mesmo código com muito menos
    linhas para você como o desenvolvedor
  • 6:27 - 6:30
    porque você está usando as
    funções da biblioteca no lugar.
  • 6:30 - 6:33
    Gosto de escrever meu código desse jeito
    porque eu gosto de poder
  • 6:33 - 6:39
    ver exatamente como estou modificando
    a árvore DOM, uma linha por vez.
  • 6:39 - 6:43
    E me parece mais limpo que empurrar tudo
    dentro de uma string de innerHTML.
  • 6:43 - 6:45
    Mas talvez você odeie.
  • 6:45 - 6:47
    De qualquer forma, agora
    você sabe que existe.
  • 6:47 - 6:51
    Então você pode usar se precisar
    e você consegue entender
  • 6:51 - 6:54
    o que bibliotecas como jQuery estão
    realmente fazendo por trás dos panos.
  • 6:54 - 6:56
    [Legendado por: Alberto Oliveira]
    [Revisado por: Fernando dos Reis]
Title:
Criando elementos do zero (Versão Vídeo)
Description:

more » « less
Video Language:
English
Duration:
06:56

Portuguese, Brazilian subtitles

Revisions