Código do Vídeo (com comentários):
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <p id="lorem">Lorem Ipsum Dolor</p> <p id="nums" class="tete">123</p> <p id="hakuna" class="tete">Hakuna Matata</p> <script> //retorna 1 elemento com base no ID let elemento = document.getElementById("lorem"); console.log(elemento); // let elemento = document.getElementById("lorem").innerHTML; // console.log(elemento); //retorna uma lista com base na classe let elementosclasse = document.getElementsByClassName("tete"); console.log(elementosclasse); // Exibe o conteudo do primeiro elemento // console.log(elementosclasse[0].innerHTML); //retorna uma lista com base na Tag let elementosTag = document.getElementsByTagName("p"); console.log(elementosTag); </script> </body> </html>
Então posso capturar qualquer elemento desta forma?
Sim, lembrando sempre dos detalhes mencionados acima.
- ID: É único e retornará apenas 1 elemento.
- Nota: Você pode colocar o mesmo id em várias tag, mas esse não é o propósito dele. Utilize classes ou outros atributos para isso
- Classe: Retorna uma lista com todas as tags (podendo conter <p>, <div>, <span> e muito mais entre elas) que possuem aquela classe
- Tag: Todas as tags com a assinatura que você passar por parametro na função (agora já sabemos o que é parametro e função 🙂 ).
Esses são os únicos formatos para obtermos informações da tela?
Nem de perto, mas na minha opinião eles são os mais simples de se aprender e utilizar. Mais para frente veremos outras formas de obter dados e formas alternativas
Por que não aparece o texto dentro da tag se não colocar innerHTML?
Simples, o que você está capturando é o objeto (ou uma lista de objetos) que representam a tag <p>, <span> ou qualquer outra que nem precisa ter um innerHTML ou texto. Ainda pode ser um pouco confuso, mas se você fizer um console.log no objeto, verá todas as propriedades deles e acredite, os programadores front end precisaram acessar várias delas.
Qual a diferença de innerText e innerHTML?
ambos tem funcionalidades parecidas, no entanto é importante saber que o innerText retornará o conteudo dentro da tag formatado como apenas texto. Enquanto o innerHTML retornará uma string com qualquer outra tag e formatação que possa existir dentro do elemento que você está vendo. Veja o exemplo abaixo:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <p id="paragrafo">123 <span>teste</span> 123 <strong>Negrito</strong> 123</p> <script> let parag = document.getElementById("paragrafo"); //exibirá 123 teste 123 Negrito 123 console.log(parag.innerText); //exibirá 123 <span>teste</span> 123 <strong>Negrito</strong> 123 console.log(parag.innerHTML); </script> </body> </html>
Como você pode ver, cada item tem sua utilidade, seja exibindo texto puro ou todo o conteúdo interno da tag
Exercícios
Para fazer os exercícios, copie o código abaixo no seu editor de texto ou IDE
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <p id="paragrafo">123 <span>teste</span> 123 <span>Lorem <strong>negrito<strong></span> 123</p> <ul> <li>111</li> <li>222</li> <li id="item">333</li> <li>444</li> <li>555</li> <li>666</li> <li>777</li> <li>888</li> </ul> </body> </html>
- Exiba apenas o texto da tag com id=paragrafo (sem tags).
- Exiba em tela o conteudo dentro das tags <span>.
- obtenha o elemento li com o texto 666 dentro dele e exiba esse valor
- Crie uma função chamada exibirInnerHTML que receberá 1 parametro (um elemento) e dentro da função escreverá o innerHTML no console. Repita essa ação para as tags <p>, <strong>, e <li> com id=item.
tem como salvar as informacao innerText
Olá Robson,
Não entendi.. Você está perguntando algo? se sim, poderia reformular ela?