Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre a atualização da quantidade de itens do carrinho

Pessoal,

Modifiquei o código do exercício para contabilizar o total de itens do carrinho levando em consideração a quantidade de cada item.

Eu quero pegar a quantidade do item que está dentro de $(this), para isso eu usei

$(this).closest('tr').find('.quantidade-item');

Mas eu não consigo recuperar esse valor. Alguém sabe como eu posso fazer?

<tr>
    <td><img src="imagens/monitor.jpg"></td>
    <td>Monitor Sam 21</td>
    <td class="quantidade-item">1</td>
    <td class="valor-item">299.99</td>
    <td class="total-valor-item">299.00</td>
    <td class="remove-item"><a href="">(Remover)</td>
</tr>

var aposInicializacao = function calculaCarrinho(){

    var valorItens = $('.valor-item');
    var quantItens = $('.quantidade-item');
    var totalItens = $('.total-valor-item');
    var totalItem = 0;
    var totalCarrinho = 0;
    var numeroDeItens = 0;

    for(var i = 0; i < valorItens.length; i++){
        var conteudo = $(valorItens[i]).text();
        var valor = parseFloat(conteudo);
        var quantidade = parseInt($(quantItens[i]).text());
        totalItem += valor * quantidade;
        $(totalItens[i]).text(parseFloat(totalItem));
        totalCarrinho += totalItem;
        numeroDeItens += quantidade;
        totalItem = 0;
    }

    $('#total-carrinho').text(totalCarrinho);
    $('#quantidade-itens').text(numeroDeItens);
    $('.remove-item').click(removeItem);

}

var removeItem = function (event){
event.preventDefault();

    var numeroDeItens = parseInt($('#quantidade-itens').text());
    var quantidadeItem = parseInt($(this).closest('tr').find('.quantidade-item'));
    console.log("A quantidade de itens: "+quantidadeItem);
    numeroDeItens -= quantidadeItem;
    $('#quantidade-itens').text(numeroDeItens);
    $(this).closest('tr').remove();
}
1 resposta
solução!

Pessoal,

Achei meu erro. Faltou o .text() para pegar o valor :)

O correto é:

$(this).closest('tr').find('.quantidade-item').text();
var removeItem = function (event){
    event.preventDefault();

    var numeroDeItens = parseInt($('#quantidade-itens').text());
    var quantidadeItem = parseInt($(this).closest('tr').find('.quantidade-item').text());
    console.log("A quantidade de itens: "+quantidadeItem);
    numeroDeItens -= quantidadeItem;
    $('#quantidade-itens').text(numeroDeItens);
    $(this).closest('tr').remove();
}