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

O valor n muda!!

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

5 respostas

Você já tentou utilizar o "val()" em vez do "text()", porque se for um campo do tipo input o "text()" não vai funcionar.

var items = $(".item-total");
 var total = 0;

 for(var i=0; i < items.length; i++) {
     var conteudo = $(items[i]).text(); 
    var preco = parseFloat(conteudo); 
    total += preco; 
}

    $("#valor-total").val(total);
}

aqui eu troquei 'items' por itens

<div>

    Valor Total: R$<span id="valor-    total">0</span>
    <br/>
    Quantidade de itens distintos:
    <span id="quantidade-de-itens"></span>    

</div>

<script>

    var itens = $(".item-total");
    var total = 0;
    for (var i = 0; i < itens.length; i++) {
        var conteudo = $(itens[i]).text();
        var preco = parseFloat(conteudo);
        total += preco;

    }
    $("#valor-total").text(total);    
    $("#quantidade-de-itens").text(itens.length);
    </script>

Lembre - se que os DIVs devem ficar na parte superior do código ou você terá que criar uma function pra englobar todas as funcionalidades e programas para executar posteriormente.

Resumindo o seu código deverá ficar assim:

<html>
<head>
<!--Parte ocultada.-->
</head>
<body>
<!--Parte ocultada.-->
<div >
        Valor Total: R$<span id="valor-total">0</span>
        <br/>
        Quantidade de Itens: <span id="quantidade-de-itens">0</span>

</div>

<script src="jquery-3.1.1.min.js"></script> <!-- Versão atual -->
<script>
var aposInicializado = function() {
    var itens = $(".item-total");
    var total = 0;
for(var i = 0; i < itens.length; i++){
    var item = $(itens[i]);
    var valor = parseFloat(item.text());
    total = total + valor; 
}
$("#valor-total").text(total);
$("#quantidade-de-itens").text(itens.length);
}

$(aposInicializado); //Código que chama a function acima após o carregamento completo da página.
    </script>
</body>
</html>

o código parece estar correto, poste o html, e utilize o botão {}inserir código para facilitar a leitura.

solução!
var conteudo = $(items[i]).text(); 
var preco = parseFloat(conteudo);

Experimenta retirar o ".text" da var conteudo e coloca na var preco!

var conteudo = $(items[i]); 
var preco = parseFloat(conteudo.text);