-
Total de itens
78 -
Registro em
-
Última visita
Posts postados por daviassumpcao
-
-
Pessoal... há valores em um JSON sendo exibidos por um JS (imagem anexo)... preciso verificar se um valor "x" está em um determinado nó do JSON. E a partir daí exibir uma div.... marquei na imagem com um círculo rosa qual valor quero verificar porém meu script não funciona... material de estudo. É possível fazer isso acontecer?
JS
const jsonCat = vtxctx.categoryId; const catProd = JSON.parse(jsonCat); var divProd = document.getElementById('faq-connect'); if (catProd.categoryId == 10103) { divProd.style.display = 'block'; } else{ divProd.style.display = 'none'; }
HTML para exibir uma DIV em caso positivo
<div class="faq-connect" style="display:none"> <p>Sucesso!</p> </div>
-
2 horas atrás, Omar~ disse:children nada mais é que um array com o(s) filho(s) de algum elemento, então pegamos o texto contido nesse filho e enviamos para a função.
Então obtemos o primeiro e o segundo filho
Definimos que o valor da variável será o retorno da função clacularPreco enviando o texto contido no filho[0] e no filho[1]
em calcularPreco a será o texto contido no filho[0] e b será o texto do filho[1]
Show de bola demais! Muito obrigado.
-
@Omar~ Clara e objetiva sua resposta. Muito obrigado.... chegar aos filhos através do pai de fato (childrens) eu novo pra mim e show de bola, estou até buscando mais informações sobre isso. Deixa eu entender mais uma coisa nesse ponto da função.... (a e b) já vem na ordem que foi especificado lá em cima? _prateleira[_i].children[0]; e _prateleira[_i].children[1];
function calcularPreco(a, b) { var floatA = parseFloat(extrairPreco(a)), floatB = parseFloat(extrairPreco(b)); return (((floatB / floatA) * 100) - 100).toFixed(2); }
Muito obrigado novamente!
-
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"); }
-
É aquele detalhe para quem está aprendendo não errar mais na questão conceitual. Muito obrigado por compartilhar!
Sucesso!
-
Eu até tentai melhorar... Na verdade esse valor vem de uma classe... e em outro elemento estou exibindo ele após ser tratado... é a mesma questão (botei aqui o HTML e JS separados)?
<p>Preço do item: <strong class="entrada">R$ 229,00</strong></p> <button onclick="myFunction()">Clique para tratar o valor</button> <p>Valor de Saída: <span style="color:red" id="saida"></span></p>
function myFunction() { var test = document.getElementsByClassName("entrada"); function getMoney( str ) { return parseInt( str.replace(/[\D]+/g,'') ); } function formatReal( int ) { var tmp = int+''; tmp = tmp.replace(/([0-9]{2})$/g, ",$1"); if( tmp.length > 6 ) tmp = tmp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2"); return tmp; } var int = getMoney( test ); document.getElementById("saida").innerHTML = (formatReal( int )); }
-
Pessoal... estou iniciando estudos em JS e me deparei com um desafio: Preciso tratar um valor (string) para obter apenas número... a primeira variável retorna NAN, as outras retornam corretamente. O que posso estar fazendo errado na variável "a" ... preciso que seja retornado "299,00" ... agradeço antecipadamente.
Segue código:
<p id="demo"></p> <script> var a = parseInt("R$ 299,00") + "<br>"; var b = parseInt("40 years") + "<br>"; var c = parseInt("10.00") + "<br>"; var n = a + b + c; document.getElementById("demo").innerHTML = n; </script>
-
Oi Omar... obrigado pela luz! Agora já tenho o caminho a seguir. Forte abraço
-
Estou buscando uma orientação ou referência para desenvolver algo similar ao formulário dessa página do iPhone https://www.apple.com/shop/buy-iphone/iphone-se ... quando selecionamos alguma opção, a div que contém o formulário centralizar na página e rola feito um carrossel. Estou completamente perdido com essa demanda que recebi... agradeço antecipadamente a todos que derem uma força. Abraço
Math.round( ) javascript em mais de uma div na mesma página
em Javascript
Postado
Tenho uma lista de DIV's com a mesma class name informado valor de desconto nos itens porém está dando casa decimal e gostaria de tirar isso... utilizei o Math.round() porém não está surtindo efeito. Seria pegar esse valor --> aplicar esse Math.round() e devolver corrigido. É possível fazer isso sem informar o valor literal do registro? Até anexei um print do console da página