如何用JS替换HTML段落的文本?

时间:2019-05-24 23:40:59

标签: javascript html

我正在写ATM的代码,这是我教授的作业,而我的问题是,当我执行innerHTML告诉用户我给他的钱是多少(这是moneystring1)时,如果他运行再次编写代码,将钱串显示在moneystring1

示例:

//他第一次运行代码;他拿了10美元 你拿出10美元

//他第二次运行代码;他拿了20美元 你拿出10美元 你拿出20美元

我在这里

class Billetes
{
  constructor(valor, cantidad)
  {
    this.valor = parseInt(valor);
    this.cantidad = parseInt(cantidad);
  }
}

var caja = [];
caja.push(new Billetes(50,3));
caja.push(new Billetes(20,2));
caja.push(new Billetes(10,2));


for(d of caja)
{
          resultado.innerHTML += d.cantidad + "billetes de " + d.valor + "<br/>";
}
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Cajero Automatico</title>
  </head>
  <body>
    <p id="resultado"><p/>
    <script src = "cajero.js">
    </script>
  </body>
</html>

我已经尝试过result.replaceWith(结果是该段落的ID),但是当他要多个账单时(10比尔和20比尔),它只会显示第一个。我还尝试过innerHTML之前的result.remove,但是由于某种原因,它取消了innerHTML

// give是一个数组,用于保存一个必须具有以下属性的类:值(账单的值,例如10 $ bill)和数量(账单的数量)

我希望管理的是当他运行第二,第三等代码时,只显示该运行的innerHTML,而不会出现之前的运行

这是完整的代码(我是西班牙裔,所以是用西班牙语写的)

JS代码

for understanding it better I recommend trying it in the browser

class Billetes
{
  constructor(valor, cantidad)
  {
    this.valor = parseInt(valor);
    this.cantidad = parseInt(cantidad);
    // this.nombre = n;
    // this.imagen = new Image();
    // this.imagen.src = imagenes[this.nombre];

  }
}

var caja = [];
caja.push(new Billetes(50,3));
caja.push(new Billetes(20,2));
caja.push(new Billetes(10,2));

var result = [];
var dineroCaja = 0;
var valido = -1;
var entregar = [];

function transaccion()
{
  if (entregar.length > 0);
  {
    var x = entregar.length;
    entregar.splice(0,x);
  }
  if (valido < 0)
  {
    valido = valido + 2;
    for(d of caja)
    {
      dineroCaja = dineroCaja + d.valor  * d.cantidad;
    }
  }
  var dineroUser = parseInt(texto.value);
  var papeles;
  var divison;

  for (d of caja)
  {
    if (dineroUser > 0)
    {
      division = parseInt(dineroUser/d.valor);
      if (division > d.cantidad)
      {
        papeles = d.cantidad;
      }
      else
      {
        papeles =  division;
      }
      entregar.push(new Billetes(d.valor,papeles));
      dineroCaja = dineroCaja - (d.valor*papeles);
      dineroUser = dineroUser - (d.valor*papeles);
    }
  }
  if (dineroCaja < 0)
  {
    resultado.replaceWith("Error no quedan Billetes");
  }
  else
  {
    if (dineroUser > 0)
    {
      resultado.replaceWith("Error, no tengo ese cambio");
    }
    else
    {
      for(d of entregar)
      {
        if(d.cantidad > 0)
        {
          var billtes;
          if(d.cantidad > 1)
          {
            billetes = " billetes ";
          }
          else
          {
            billetes = " billete ";
          }
          resultado.innerHTML += d.cantidad + billetes + "de $ " + d.valor;
        }
      }
    }
  }
  console.log(entregar, dineroUser, dineroCaja);


}

var texto = document.getElementById('dinero.usuario');
var boton = document.getElementById('boton');
var resultado = document.getElementById('resultado');
boton.addEventListener('click', transaccion,);
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Cajero Automatico</title>
  </head>
  <body>
    <h1>Cajero Automático</h1>
    <p>
      <img src ="cajero.gif" />
    <p/>
    <p>
      <input type='number' id='dinero.usuario'/>
      <input type='button' value='Extraer'id='boton'/>

    </p>
    <p id="resultado"><p/>
    <script src = "infocajero.js">
    </script>
    <script src = "cajero.js">
    </script>
  </body>
</html>

0 个答案:

没有答案