como somar td de uma tabela em js puro

Sou novo como Dev e gostaria de uma ajuda para conseguir realizar o somatório dos valores das td's que são adicionadas a minha planilha. realializei alguns testes, mas até o momento dessa postagem, não consegui resolver meu problema. Obs: Os valores são inseridos através de um input.

Abaixo segue uma parte do código. As duas primeiras adicionam uma tr a minha página com o tipo de transação da mercadoria (compra ou venda), o nome da mercadoria e o valor da mercadoria.

No caso, quero somar e subtrair só os valores para que o resultado seja alterado no valor total. Se for compra, será subtração do valor, se for venda, será adição do valor.

desenhaTabela()
function desenhaTabela () {
  for (transaction of objStorage) {
    document.querySelector('.tabelaGeral').innerHTML += `
  <tr>

    <td class="produto">${transaction.tipo}&nbsp;${transaction.nome}</td> 

    <td class="preco">${transaction.valor}</td>
  </tr>`
  };


}
function lerTabela () {
// Dom nome e valor dos input
var tabela = document.querySelector('.tabelaGeral')
let nome = document.querySelector('.btnMercadoria')
let nomeMercadoria = nome.value
let currency = document.querySelector('.btnValor')
let valor = currency.value
let tipoSelecao = document.getElementsByName('trade')


tabela.innerHTML += `
  <tr>

    <td class="produto">${tipoSelecao.value == "compra" ? "+" : "-" }&nbsp;${nomeMercadoria}</td> 

    <td class="preco">${valor}</td>
  </tr>`

  objStorage.push({
    nome: nomeMercadoria,
    valor: valor,
    tipo: tipoSelecao.value == "compra" ? "+" : "-"
  })

  localStorage.setItem('objStorage', JSON.stringify(objStorage))

};
function totaValor () {

  var linha = document.getElementsByClassName(".preco");
  var resultado = document.getElementsByClassName('.qtdTotal').innerHTML = 0;


     for (i = 0; i < linha.length; i++) {
         resultado = resultado + Number(linha[i].innerHTML);
     }

 document.getElementsByClassName(".qtdTotal").innerHTML = resultado;


    document.querySelector('.tabelaGeral .foot').innerHTML += `
  <tr>

    <td>Total</td> 

    <td class="qtdTotal">${resultado}</td>
  </tr>`

  if (objStorage.length > 0) {
    document.querySelector('.tabelaGeral tfoot').innerHTML += `
    <tr>
      <td></td>
      <td class="status">${Math.sign(resultado) > 0 ? "[LUCRO]" : "[PREJUÍZO]"}</td>
    </tr>`
  }

  console.log(resultado)
}
totaValor()
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags javascript ou faça a sua própria pergunta.