javascript - 在 javascript 中显示按钮并打印变量

标签 javascript html css

我对 JavaScript 还很陌生,但我在其他语言方面有一些经验。我一直在致力于制作自己的小元素,并且仍在弄清楚某些事情是如何运作的。我有两个问题需要帮助解决。第一个,我有一个按钮,在你获得 100 分后应该出现,然后单击该按钮。这是在 if (buyupgrade == 1) 及其以下部分。我希望该按钮在满足条件后出现(获得 100 点后购买第一次升级)。我还想打印按钮的文本部分,但在文本中,我需要它来显示变量,所以我的按钮文本将显示一些单词和变量。感谢您的帮助!

<!DOCTYPE html>
<html>
<body>

<p>Click to get started!</p>

<button onclick="addPoints()">Add points</button>

<button id="btn_multiply" onclick="firstx2()" style="display:none;">x2 Multiplier. Cost: 100</button>

<button id="firstbuild" onclick="build1()" style="display:none;">Building 1. Cost 200</button>
<script>

var points = 98;
var pointMulti = 1;
var buyupgrade = 0;
var currentpoints = setInterval(pointupdate, 1000);
function addPoints() {
    points += pointMulti;
    var pointsArea = document.getElementById("pointdisplay");
    pointsArea.innerHTML = "You have " + points + " points!";
        if(points >= 100 && buyupgrade == 0) {
        var multiply_button = document.getElementById("btn_multiply");
        multiply_button.style.display = "inline";
    }
}

function firstx2() {
  if (buyupgrade == 0) {
    pointMulti *= 2;
    buyupgrade++;
    points -= 100;
    var multiplierArea = document.getElementById("multidisplay");
    multiplierArea.innerHTML = "Your multiplier is: " + pointMulti + "!";
    var multiply_button = document.getElementById("btn_multiply");
    multiply_button.style.display = "none";
  }
}

if (buyupgrade == 1) {
  document.getElementById("firstbuild");
  firstbuild.style.display = "inline";
  function build1() {

  }
}
function pointupdate() {
  document.getElementById("pointdisplay").innerHTML = "You have " + points + " points!";
}
</script>

<p id="pointdisplay"></p>
<p id="multidisplay"></p>
</body>
</html>

最佳答案

您应该使第三个按钮可见的代码本身位于任何函数之外。这似乎是一个错字:

if (buyupgrade == 1) {
   document.getElementById("firstbuild");
   firstbuild.style.display = "inline";
   function build1() {
}

只有当 buyupgrade == 0 时,才会在程序中第一次调用此函数

我认为你的意思是将其放在函数内部:

function firstx2() {
    if (buyupgrade == 0) {
        pointMulti *= 2;
        buyupgrade++;
        points -= 100;
        var multiplierArea = document.getElementById("multidisplay");
        multiplierArea.innerHTML = "Your multiplier is: " + pointMulti + "!";
        var multiply_button = document.getElementById("btn_multiply");
        multiply_button.style.display = "none";
    }

    if (buyupgrade == 1) {
        var firstbuild = document.getElementById("firstbuild");
        firstbuild.style.display = "inline";

        // add some text to the button
        firstbuild.innerText = "buyupgrade: " + buyupgrade
    }
}

另外,还有一个错字:

document.getElementById("firstbuild");

可能应该是:

var firstbuild = document.getElementById("firstbuild");

关于javascript - 在 javascript 中显示按钮并打印变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45403686/

相关文章:

html - 文本正下方的文本阴影

javascript - 弧线显示射击游戏中剩余的重新加载时间

javascript - 如何检查 SVG 中是否缺少 css 类?

javascript - 动态更新 d3.js 树形图

php - 如何在 HEADER ('Location:' ) 命令中使用 URLENCODE?

javascript - table 上的基础网格系统?

java - 根据条件 JSP 显示 HTML 代码

javascript - HTML Canvas 在全屏尺寸下变得模糊

css - jQuery UI Datepicker - 添加一个额外的类来改变颜色

javascript - Google Maps Infobox Autopan 问题