1
resposta

[Dúvida] Desafio aula 3 atividade 6: Não consigo imprimir o codigo?

Olá. Estou com dificuldades nessa atividade.

<h1> Alura Fone </h1>
<input type="tel" placeholder="Digite seu telefone">
 <section class="teclado">
   <input type="button" value="1">
    <input type="button" value="2">
    <input type="button" value="3">
    <input type="button" value="4">
    <input type="button" value="5">
    <input type="button" value="6">
    <input type="button" value="7">
    <input type="button" value="8">
    <input type="button" value="9">
    <input type="button" value="*">
    <input type="button" value="0">
    <input type="button" value="#">
  </section>

^HTML^

* {
  box-sizing: border-box;
/*   margin: 0;
  padding: 0; */
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;

  background-color: #191919;
  min-height: 100vh;
}

input {
  border: none;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-family: inherit;
}

h1 {
  font-family: 'Montserrat', sans-serif;
  font-size: 24px;
  color: #fff;
}

.teclado {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px; 

  background-color: #cccccc;
  border-radius: 30px;

  padding: 10px;
}

input[type=button] {
  border-radius: 20px;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
  height: 80px;
  width: 80px;
}

input[type=tel] {
  background-color: #cccccc;
  border-radius: 10px;
  font-family: monospace;
  font-size: 22px;
  height: 40px;
  margin-bottom: 24px;
  padding: 10px;
  text-align: center;
  width: 280px;
}

.ativa {
  background-color: yellow;
}

^CSS^

const listaDeTeclas = document.querySelectorAll('input[type=button]');
console.log(listaDeTeclas);

^Javascript^

Não consigo imprimir de jeito nenhum pelo console do ''Inspecionar elemento''. Aparece o erro de que listaDeTeclas não esta definido.

Realizei o desafio por conta própria, mas tive esse problema, entao decidi copiar e colar para ver aonde estava errando, mas mesmo com o códico copiado e colado eu recebo a mensagem de que listaDeTeclas nao esta definido. Não tenho certeza se isso deveria acontecer.

Edit* Percebi que o HTML nao referenciava o Javascript. No desespero decidi testar se era esse o problema, agora o Console imprime, mas apenas os ''inputs'' entao a lista fica

0: input

1:input 

2:input

//Assim por diante ate o 11
1 resposta

Olá, Murillo! Tudo bem?

Então, o que acontece é que você está pegando apenas o elemento de input, quando o que você quer imprimir no console são os valores atribuídos a estes elementos, ou seja, o value. Então o que você pode fazer é percorrer esse array com algum laço de repetição , como o for por exemplo, e aí sim imprimir cada valor no console.

Por exemplo:

const listaDeTeclas = document.querySelectorAll('input[type=button]');

for (let i = 0; i < listaDeTeclas.length; i++) {
  console.log(listaDeTeclas[i].value);  
}

Desse jeito, a cada interação será impresso no console o valor (value) correspondente atribuído a cada input do seu código HTML.

Tranquilo? Espero ter ajudado!

Abraços

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software