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

Exercício 4 : Quantidade de itens

Boa tarde! Eu testei o código do vídeo e a quantidade de itens foi 7, mas são 7 campos e 8 itens já que o campo Telefone miPhone 18 contém 2 itens adicionados ao carrinho. Eu fiz meu código usando o for duas vezes e devolveu 8 itens.

<script>
       //selecionar todos os campos  da class items-total;
       //iniciar variavel total com 0;
       //percorrer todos os campos da class items-total;
       //selecionar todos os valores de todos os campos da class items-total;
       //atribuir todos os valores que foram selecionados pela variavel item a variavel preco;obs: deve-se usar parseFloat, caso contrário será feita a concatenação de texto e não de números;
       //incremento da variável total;onde total é 0 e preco a soma de todos os valores adicionados ao cart;
       //escrever o total em uma tag html para que seja exibido ao usuário.

        var aposInicializadoValor = function(){
        var items= $(".item-total");
        var total= 0;
        for(var i =0;i<items.length;i++){
          var item = $(items[i]).text();
          var preco = parseFloat(item);
          total = total + preco;
          }
        $("#valor-total").text(total);
        };

        $(aposInicializadoValor);

        var aposInicializadoQuantidadeItens = function(){
        var qItens = $(".quantidade");
        var totalItens = 0;
        for(var i = 0; i < qItens.length; i++){
            var tItens = $(qItens[i]).text();
            var itensT = parseFloat(tItens);
            totalItens += itensT;
          }
        $("#quantidade-de-itens").text(totalItens);
        };

        $(aposInicializadoQuantidadeItens);
    </script>
4 respostas

Olá Claudio,

Tenta o seguinte código:

        var aposInicializadoQuantidadeItens = function(){
        var qItens = $(".quantidade");
        var totalItens = 0;
        for(var i = 0; i <= qItens.length; i++){
            var tItens = $(qItens[i]).text();
            var itensT = parseFloat(tItens);
            totalItens += itensT;
          }
        $("#quantidade-de-itens").text(totalItens);
        };

A única modificação que eu fiz foi adicionar a regra que enquanto o contador i for menor ou igual a quantidade de itens ele realiza a contagem.

Boa tarde Tiago! Eu agradeço a resposta mas não se trata do meu código está errado, é que se contar no formulário fornecido pela Alura são 8 itens no carrinho já que no segundo campo o usuário comprou duas vezes o mesmo produto. Então são sete campos e 8 itens, porém na lógica do professor são calculados 7 itens, porque estão sendo calculados os campos e não a quantidade real de itens. Esse código que coloquei apesar de ser grande calcula 8 itens. Eu testei o código que me enviou mas não aparece nada no resultado e nem mostra erro no console. Mais uma vez obrigado por responder esse questão!

solução!

Também concordo com o Claudio... no codigo fornecido nao esta pegando a quantia exata no campo de quantidade de itens. Simples, eu resolvi adicionando uma classe que pega estes campos e calcula :)

Boa noite Claudio Henrique , no vídeo o instrutor diz vamos pegar a quantidade de itens DIFERENTES , 2 telefones são telefones logo conta-se 1 ,pelo menos eu entendi assim. Ele diz vamos contar a quantidade de itens diferentes.