单击按钮

时间:2016-02-16 15:22:01

标签: javascript html

你好我有一个代码,当点击一个按钮时会产生随机数,我想保留随机数的一些结果,我做了一个for循环,当点击一个按钮它保持结果但它不工作可以有人识别错误。

感谢。

HTML

<button onclick="Generate()">Generate</button>
<button onclick="Keep()">Keep Result</button>

G: <a id="generated"></a>
Keep: <a id="keep"></a>

JS

function Generate() {

    var r = Math.floor(Math.random() * 100);
    document.getElementById("generated").innerHTML = r;
  }
function Keep() {

    var i;
    for(i = 0; i < letters.length; i++){

    new_string = r;
  }
    document.getElementById("keep").innerHTML = new_string;
}

1 个答案:

答案 0 :(得分:1)

您需要在javascript中查找并阅读变量作用域。变量r使用函数Generate()定义,因此它在Keep()内没有值。与此同时,Keep()引用了letters,似乎没有在您的示例中定义。如果您只想保存生成的值,那么为什么要循环使用。或者这应该将值附加到列表中?无论如何,循环似乎没有多大用处,因为它一遍又一遍地赋值。

如果您要做的只是保存显示的随机值,为什么不只是获取内部html并使用它。

function Keep() {
    new_string = document.getElementById("generated").innerHTML;
    document.getElementById("keep").innerHTML = new_string; 
}

如果您想在每次单击按钮时将值附加到列表中,您可以这样做:

function Keep() {
    new_string = document.getElementById("generated").innerHTML;
    old_string = document.getElementById("keep").innerHTML;
    document.getElementById("keep").innerHTML = String(old_string) + String(new_string); 
}

我将每个值转换为字符串,以确保您不会意外地最终添加两个数字。