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

NaN

Quando clico no botão "adicionar" mostra q o valor do produto na tela é NaN (not a number) e tentei ver onde estava o erro e descobri que era na variavel "valorUnitario" que esta dando undefined, e eu não sei como resolver esse problema

function adicionar() {
    //recuperar valores nome do produto, quantidade e valor
    let produto = document.getElementById('produto').value;
    let nomeProduto = produto.split('-')[0];
    let valorUnitario = produto.split('R$ ')[1];
    let quantidade = document.getElementById('quantidade').value;
    
    //calcular o preço, o nosso subtotal
    let preco = quantidade.value * valorUnitario;
    let carrinho = document.getElementById('lista-produtos');
    console.log(valorUnitario);
    console.log(quantidade);
    console.log(preco);
    
    //adicionar no carrinho 
    carrinho.innerHTML = carrinho.innerHTML + `<section class="carrinho__produtos__produto">
    <span class="texto-azul">${quantidade}x</span> ${nomeProduto} <span class="texto-azul">R${preco}</span>
  </section>`;
    //atualizar o valor total
}
![](![o NaN esta sinalizado em verde](https://cdn1.gnarususercontent.com.br/1/742508/16abcce7-f92a-4535-a8c4-52c3f2b5b714.png)  )
5 respostas

Opa! Tenta transformar seu valorUnitario para um valor float ou int. Quando você utiliza o split, sua variável continua sendo uma string

Verifique também se o produto vem no formato R$1000 ou R$ 1000, o slipt pode interferir nisso.

O produto vem no formato R$1000 e eu tentei transformar o valorUnitario em int usando o parseInt mas provavelmente usei errado, vc conseguiria escrever em codigo pra eu ver melhor

solução!

Antes da linha //calcular o preço, o nosso subtotal. Faça 2 console.log com:

console.log(valorUnitario)
console.log(quantidade)

Outra observação, é que você já está pegando o value da quantidade direto no getElementById, portanto, não é possível acessar a propriedade .value

Erro:

    let quantidade = document.getElementById('quantidade').value;
    
    //calcular o preço, o nosso subtotal
    let preco = quantidade.value * valorUnitario;

Correção:

    let quantidade = document.getElementById('quantidade').value;
    
    //calcular o preço, o nosso subtotal
    let preco = quantidade * valorUnitario;

o problema era o .value no let preco tb, assim q tirei o codigo funcionou. muito obg

Disponha!