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

Possível erro no exercício 04 Seleção Falhando.

No exercício é dito que o João está utilizando a querySelector de uma maneira errada, pois ele deveria utilizar a querySelectorAll.

Mas acredito que se ele utilizar a querySelector com o parâmetro de "lista-produtos", que é o parâmetro descrito no exercício, o mesmo retornará a "lista-produtos" completa.

<ul class="lista-produtos">
    <li class="produto">Web cam</li>
    <li class="produto">Microfone</li>
    <li class="produto">Fundo verde</li>
    <li class="produto">Notebook</li>
</ul>
var produtos = document.querySelector("lista-produtos");

Agora, se no código acima ele estivesse utilizando somente "produtos" no parâmetro, aí sim seria necessário utilizar o querySelectorAll pois caso contrário ele retornaria somente o primeiro produto. Para que o exercício fique correto basta alterar o parâmetro do querySelector para "produtos".

5 respostas

Boa noite, Victor! Como vai?

Na realidade de qualquer forma o parâmetro está incorreto. Pois falta um . para indicar que o seletor utilizado no método é o seletor de classe. Além disso, o exercício diz que "João está montando um script em Javascript que deve pegar todos os nomes dos produtos de um e-commerce" para logo em seguida mostrar que a ideia é criar uma lista iterável com esses produtos. Sendo assim, como o objetivo é obter uma lista o método a ser utilizado só poderia ser o querySelectorAll(). Afinal de contas ele sim retorna uma lista com os elementos selecionados.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Bom dia Gabriel! Tudo bem e você?

Consegui entender a diferença do querySelectorAll() e doquerySelector(). Mas de qualquer forma para que o querySelectorAll()funcionasse corretamente o parâmetro a ser utilizado não deveria ser somente "produtos" ao invés de "lista-produtos"?

Obrigado pela atenção e pela explicação!

Abraços.

solução!

Boa tarde, Victor! Como vai ?

Como o gabriel estava usando somente o querySelector() ele pegou a lista-produtos, mas ele teria que trocar para produtos quando for usar o querySelectorAll(), isso foi um detalhe que passou despercebido mas você analisou muito bem parabéns.

Espero que tenha ajudado :)

Abraços.

Opa, Victor!

Mas de qualquer forma para que o querySelectorAll()funcionasse corretamente o parâmetro a ser utilizado não deveria ser somente "produtos" ao invés de "lista-produtos"?

Exatamente! Justamente por isso que as respostas corretas desse exercício são as que indicam que o certo seria trocar o querySelector() por querySelectorAll() e também trocar o seletor de "lista-produtos" para ".produto".

Para deixar o exercício mais claro eu fiz uma alteração nas opções. Dê uma olhada lá e veja o que achou!

Muito obrigado pelo seu feedback! É com participações como essa sua que fazemos da Alura uma plataforma cada vez melhor! Continue assim!

Grande abraço e bons estudos, meu aluno!

Opa Gabriel!

Consegui verificar o exercício e está mais claro agora.

Muito obrigado pelo feedback e pela resposta.

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