Javascript:innerHTML undefined

时间:2018-04-04 03:47:01

标签: javascript

所以我正在做这样的事情......

var crypto = tradeMsg.coin
var oldPrice;

for (let i=0; i<500; i++) {
  var compare = cryptoSName[i].innerHTML
  if (compare == crypto) {

    document.getElementById('price' + i).innerHTML= "$" + (tradeMsg.message.msg.price.toFixed(4));;
    document.getElementById('perc' + i).innerHTML= tradeMsg.message.msg.perc + "%";
    var newPrice = tradeMsg.message.msg.price

    if (newPrice<oldPrice) {
      document.getElementById("cryptotable" + i).style.background = "#ffe5e5";
      console.log(oldPrice)
    }
    else if (newPrice>oldPrice) {
      document.getElementById("cryptotable" + i).style.background = "green";

    }
    console.log(oldPrice);
    console.log(newPrice);
    var oldPrice = tradeMsg.message.msg.price

    setTimeout(function() {
      document.getElementById("cryptotable" + i).style.background = "white"
    }, 1000);
  }
}

当我console.log旧价格时,它显示未定义,而我期待此前的值。我觉得我在吊装这里有问题。

如果有人能帮到我,我将非常感激?

有人也可以解释我的意思..

  

JavaScript的范围是功能级别,而不是块级别和创建   闭包只意味着封闭的范围被添加到   封闭函数的词汇环境

1 个答案:

答案 0 :(得分:0)

oldPrice变量需要在初始时间声明然后检查