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

122
Visualizações
Reemplazar un valor de cadena usando el evento de clic

Estoy construyendo un modal de donación.

Cuando hago clic en el botón de donar, la barra de progreso se incrementa según el valor de entrada.

Quiero reemplazar la cadena de dinero de h1 cuando hago clic en donar. Entonces, si el valor de entrada es 10, cuando hago clic en el botón de donar, h1 debería leer:

 $140 is still needed for this project

Esto se ejecuta solo una vez, porque reemplaza el texto solo cuando encuentra '$150'.

 .modal .modal-header-box h1 $150 is still needed for this project .modal-content progress#myProgress(value='50', max='200') h1 Only days left to fund this project. Join the other 42 other donors who have already suppoorted this project. Every dollar helps. input(type='number', placeholder='$' id='value', max='100') button#btn Give Now .button.save-later Save for later .button.social Tell your friends

JavaScript

 document.getElementById('btn').addEventListener('click', function() { var x = document.getElementById('myProgress'); console.log(x.value, document.getElementById('value').value) x.value = +x.value + +document.getElementById('value').value; let difference = x.max - x.value; console.log(difference); document.body.innerHTML = document.body.innerHTML.replace('$150', `${difference}`); });

¿Hay alguna forma de hacer que esto sea más dinámico, de modo que la cadena se actualice si se hace clic en el botón de donar varias veces?

Enlace de CodePen

https://codepen.io/make96/pen/XWZdbPZ

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Su problema reside en reemplazar todo en la página. Debe restringir la transformación a los elementos que está cambiando. En lugar de reemplazar document.body, apunte al modal header box en su lugar.

 document.body.innerHTML = document.body.innerHTML.replace('$150', `${difference}`);

Reemplace el contenido del cuadro de encabezado modal en su lugar.

 document.getElementsByClassName("modal-header-box")[0].innerHTML = `<h1>$${difference} is still needed for this project</h1>`;
about 4 years ago · Juan Pablo Isaza Relatório

0

No reemplace el cuerpo del documento. No es una buena práctica actualizar el cuerpo cada vez, actualice solo el campo obligatorio.

JavaScript

 document.getElementById("btn").addEventListener("click", function() { const title = document.getElementById("title"); const x = document.getElementById("myProgress"); const prev = +x.value x.value = prev + +document.getElementById("value").value; let difference = x.max - x.value; title.innerHTML = title.innerText.replace(x.max - prev, `${difference}`); });

Modelo

 h1#title $150 is still needed for this project
about 4 years ago · Juan Pablo Isaza Relatório

0

Simplemente coloque el número en un lapso y solo cambie la entrada del lapso en cada clic. Toma el valor del intervalo y el valor del cuadro de entrada y lo resta cada vez que hace clic en él.

Función:

 document.getElementById("btn").onclick = function(){ var value = parseInt(document.getElementById("test").innerHTML); var donate = parseInt(document.getElementById("value").value); document.getElementById("myProgress").value += donate; document.getElementById("test").innerHTML = value-donate; }

modal-header-box

 .modal-header-box h1 $<span id="test">150</span> is still needed for this project
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