【问题标题】:Text + randomchar doesn't work [JavaScript]文本 + 随机字符不起作用 [JavaScript]
【发布时间】:2010-12-31 19:48:29
【问题描述】:
<script>
function makeid()
{
var text = "var text = document.write(lastNumber);";
var possible = "*+-/";
for( var i=0; i < 1; i++ )
document.write(lastNumber + possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
document.write(makeid(1))</script>

我如何让这个输入例如:23* 45- 13/ 等等。 怎么了? 它只显示 2 个数字,之后没有字符。

【问题讨论】:

  • 你到底为什么要这样做? document.write 通常是个坏主意。

标签: javascript math random document.write


【解决方案1】:

代码有些问题:

  • 您没有在函数中指定 lastNumber 参数。
  • 您正在返回使用该参数的代码,但无法从执行代码的位置访问。
  • 返回的代码使用document.write的返回值,虽然它不返回任何内容。
  • 返回的代码没有脚本标签,所以只会显示在页面上而不是执行。
  • 您既要在函数中编写数字,又要返回编写它的代码。

还有:

  • 您正在使用一个只循环一次的循环,这是没有意义的。

只要让函数返回字符串而不是返回代码:

<script type="text/javascript">
function makeid(lastNumber) {
  var possible = "*+-/";
  return lastNumber + possible.charAt(Math.floor(Math.random() * possible.length));
}
document.write(makeid(1));
</script>

【讨论】:

    【解决方案2】:
    <script>
    function makeid()
    {
    var text = document.write(lastNumber);
    var possible = "*-+/";
    for( var i=0; i < 1; i++ )
    text += possible.charAt(Math.floor(Math.random() * possible.length));
    return text;
    }
    document.write(makeid(1))</script>
    

    这有效,但我得到“88undefined+”什么是未定义的,我该如何删除它?

    【讨论】:

    • document.write 的返回值是未定义的。您将其分配给 text 变量,然后将字符串连接到它。
    猜你喜欢
    • 2016-02-25
    • 1970-01-01
    • 2018-08-28
    • 2011-07-28
    • 2020-04-07
    • 2023-03-12
    • 2021-12-26
    • 2021-03-29
    • 1970-01-01
    相关资源
    最近更新 更多