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

Por que importar no Body?

Em outros treinamentos que fiz aqui na Altura o instrutor orienta importar o arquivo JavaScript no head. Neste a importação do JavaScript está sendo feita no Body.

Tentei fazer a importação no head mas o jQuery não funcionou. Existe alguma explicação para isso? Ou fiz alguma coisa errada?

<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Alura Typer</title>
    <script src="js/jquery.js"></script>    
    <script src="js/main.js"></script>
</head>
<body>
    <h1>Alura Typer</h1>
    <p class="frase">Lorem ipsum dolor sit am  et, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>

    <ul class="informacoes">
        <li>30 Palavras</li>
        <li>10 Segundos</li>        
    </ul>
3 respostas

Normalmente o css é no header e o js no footer.

Manda a mensagem de erro.

Na realidade nenhuma mensagem de erro é apresentada. O console simplesmente imprime uma linha em branco o comando abaixo:

var frase = $(".frase").text();
console.log(frase);

Também funciona importando no foooter. Só no head que ele parece não funcionar. Até então eu pensava que se tratasse apenas de uma convenção.

solução!

Olá Einstein,

Nos navegadores, o carregamento da página ocorre sempre através da leitura de cada linha escrita, de cima para baixo, como você está importando os scripts antes do conteúdo da página, a seleção da classe "frase" não retornará nada, justamente porque ela ainda não foi carregada na memória pelo browser.

Ao realizar as chamada dos scripts no final da tag "body", todos os elementos do documento já estarão "lidos", sendo possível desta maneira manipulá-los como preferir.