Alguém pode me ajudar com este site. A parte frontal exibe os preços só que logo abaixo exibe novamente com NaN. Quando entra em qualquer produto, o NaN desaparece. Alguma dica de como posso resolver isso?
Algum truque para “ocultar” a frase com o NaN na tela frontal seria interessante.
Olhei rapidamente o código e vi chamada a função setInterval, imagino ser algo rodando até a página terminar de carregar acertei?
Se for isso, uma boa prática hoje em dia é colocar todo seu script js no final da página antes de body…
<script>
//js aqui....
</script>
</body>
Isso evita problemas de carregamento e não é mais necessário funções de intervalo, já que na ordem todos os elementos da página foram carregados no DOM…
Bom, na verdade fiz uma “gambiarra” para funcionar este código. É um site que vem de uma outra plataforma. Então fiz uma modificações nele no front para imprimir aquelas frases com divisões de preços que não tinha antes. Falta apenas conseguir consertar esse “bug” do NaN que aparece na página.
var counter = 0
var timer = setInterval(function(){
if(counter >= 0){
$("h5").remove()
}
counter++
var demo = $('div.ecwid-productBrowser-price');
demo.each(function() {
var valor = parseInt(this.innerHTML.replace(/\./g, '').replace(',','.').substr(2) / 3, 10).toFixed(2).replace('.',',')
$(this).after("<h5 class='demo' style='color: #e9d0ba;font-size:15px;'>3x de " +valor+ " sem juros </h5>")
var mostra = 'block';
if (isNaN(demo)) {
mostra = 'none';
} else{
document.getElementById('podeTerNaN').style.display = mostra
}
})
}, 1000)
$(this).after("<h5 class='demo' style='color: #e9d0ba;font-size:15px;'>3x de " +valor+ " sem juros </h5>")
Você precisa colocar o if na variavel valor…
var valor = parseInt(this.innerHTML.replace(/\./g, '').replace(',','.').substr(2) / 3, 10).toFixed(2).replace('.',',')
if (!isNaN(valor)) {
$(this).after("<h5 class='demo' style='color: #e9d0ba;font-size:15px;'>3x de " +valor+ " sem juros </h5>");
}
Perceba que coloquei uma exclamação ! na frente do isNaN, isso diz ao js… se o valor não for NaN, imprime o texto… pegou? boa sorte!