Inserir registros em várias Div's (for) getelementsbyclassname e js
Pessoal... Estou pegando 2 valores via class em divs e fazendo um cálculo para saber a porcentagem de desconto obtida (uma lista de registros). Porém, quando vou inserir o resultado em outras div's com class também, não funciona. Se eu mudo para id, é inserido na primeira div apenas. O identificador dessa div é a "desconto" que está com o fundo vermelho. É errado usar o getElementsByClassName para inserir os valores encontrados? Até tentei um for mas não rolou.... (sou iniciante em JS e isso é exercício estou fazendo) O script:
<div class="container">
<div class="prateleira-wrap">
<div class="prateleira-preco-de">De R$ 10,00</div>
<div class="prateleira-preco-por">Por R$ 5,00</div>
<div class="desconto"></div>
</div>
<div class="prateleira-wrap">
<div class="prateleira-preco-de">De R$ 9,00</div>
<div class="prateleira-preco-por">Por R$ 3,00</div>
<div class="desconto"></div>
</div>
</div>
.container{
background-color:#e4e4e4;
width:100%;
height:auto;
float:left;
}
.prateleira-wrap{
border: 1px solid #000;
width:40%;
float:left;
margin:10px;
}
.desconto{
background-color:red;
color:#fff;
width:100%;
height:20px;
float:left;
}
function getMoney(str) {
return str
.replace(/[^\d,]+/g, '') // Remove caracteres desnecessários.
.replace(',', '.'); // Troca o separador decimal (`,` -> `.`)
}
var a = document.getElementsByClassName("prateleira-preco-de")[0].innerHTML;
var b = getMoney(a);
var c = document.getElementsByClassName("prateleira-preco-por")[0].innerHTML;
if ( c !== null) {
var d = getMoney(c);
var e = ((d / b) * 100) - 100;
var f = e.toFixed(2);
document.getElementsByClassName("desconto").innerHTML = ('Desconto de ' + f + '%');
// console.log('Desconto de ' + f + '%');
} else {
console.log("Não há desconto no preço do produto");
}Discussão (4)
Carregando comentários...