Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

298
Visualizações
Reemplace el valor de JS si se encuentra dentro de div según la condición if/else

Tengo un código html de una plataforma de recomendación de productos en línea que me permite agregar JS a html.

El código HTML a continuación funciona bien, pero quiero aplicarle JS basado en la lógica de que, si ${discountvalue} muestra algún valor, entonces los valores de ${discountvalue} y ${regularvalue} son visibles con una línea cruzada en regularvalue.

Si ${regularvalue} no tiene ningún valor o está vacío/nulo, entonces solo ${regularvalue} será visible.

CÓDIGO HTML:

 <div class="slider-wrapper"> ${#Recommendations} // This loads the the more then one values of product recommendation ${discountvalue} ${regularvalue} <div class="slider-wrapper"> <div class="pricebox"> <p class="dynamic-price">${discountvalue}</p> <p class="regular-price"> <span class="rec_price_num">${regularvalue}</span> </p> </div> </div> ${/#Recommendations} </div>

Y este es el código JS:

 var itemPrices = document.querySelectorAll('.slider-wrapper .pricebox'); for(var i=0; i<itemPrices.length; i++){ var discount_price = itemPrices[i].getElementsByClassName("dynamic-price")[0].innerHTML; var price = getElementsByClassName("rec_price_num")[0].innerHTML; if(discount_price){ var discount_price = itemPrices[i].getElementsByClassName("dynamic-price")[0].innerHTML; var price = getElementsByClassName("rec_price_num")[0].innerHTML; } else { var price = getElementsByClassName("rec_price_num")[0].innerHTML; } }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

parseFloat(discount_price.innerHTML) devolverá un valor real si el precio de descuento se puede analizar en un número de punto flotante diferente de 0.

Puedes usar la regla CSS text-decoration: line-through; tener una línea cruzada en el valor.

 var itemPrices = document.querySelectorAll('.slider-wrapper .pricebox'); for(var i=0; i<itemPrices.length; i++){ var discount_price = itemPrices[i].getElementsByClassName("dynamic-price")[0]; var price = itemPrices[i].getElementsByClassName("regular-price")[0]; if(parseFloat(discount_price.innerHTML)){ price.style.textDecoration = "line-through"; } else { discount_price.style.display = "none"; } }
 <div class="slider-wrapper"> <div class="pricebox"> <p class="dynamic-price">0</p> <p class="regular-price">5</p> </div> <hr> <div class="pricebox"> <p class="dynamic-price">4</p> <p class="regular-price">5</p> </div> </div>

about 4 years ago · Juan Pablo Isaza Relatório

0

No necesita javascript. se puede resolver con css3

 .pricebox p { font-weight: bold; font-size: 1.5rem; color: red; margin: 0 0 1rem; } .pricebox .dynamic-price { margin-bottom: 0; } .pricebox .dynamic-price:empty { display: none } .pricebox .dynamic-price:not(:empty) + .regular-price { font-size: .875rem; color: gray; text-decoration: line-through; }
 <div class="slider-wrapper"> <div class="slider-wrapper"> <div class="pricebox"> <p class="dynamic-price"></p> <p class="regular-price"> <span class="rec_price_num">200.00</span> </p> </div> <div class="pricebox"> <p class="dynamic-price">100.00</p> <p class="regular-price"> <span class="rec_price_num">150.00</span> </p> </div> </div> </div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda