【问题标题】:Javascript function depending on random stringJavascript函数取决于随机字符串
【发布时间】:2016-01-06 13:34:15
【问题描述】:

首先感谢您帮助像我这样的新手。我的问题是我必须为一个班级创建一个(应该是)简单的游戏。随机显示一个小时,孩子们必须点击对应于一天中的那个时间(基本上是日出/日落、白天和黑夜)的右侧图像。如果他们没有选择正确的图像,就会被另一个图像取代。如果答案是正确的,图像将保持不变。

<body>

<div id="container">

            <input type="image" id="moment1" src="soleil.png" alt="leve-couche-soleil" onclick="bon1()" style="display:inline">

            <input type="image" id="moment2" src="nuit.png" alt="nuit" onclick="bon2()" style="display:inline">

            <input type="image" id="moment3" src="jour.png" alt="jour" onclick="bon3()" style="display:inline">

            <input type="image" id="gris1" src="gris_leve_couche-soleil.png" onclick="bon1()" style="display:none">

            <input type="image" id="gris1" src="gris_nuit.png" onclick="bon2()" style="display:none">

            <input type="image" id="gris1" src="gris_jour.png" onclick="bon3()" style="display:none">

</div>

<div id="js">
<script>

    var heuresmoment1 = ['19 heures', '20 heures', '6 heures', '7 heures', '21 heures', '22 heures', '23 heures', 'minuit', '1 heure', '2 heures', '3 heures', '4 heures', '5 heures', '8 heures', '9 heures', '10 heures', '11 heures', 'midi' ,'13 heures', '14 heures', '15 heures', '16 heures', '17 heures', '18 heures'];

    var mom1 = heuresmoment1.slice(0, 3);

    var mom2 = heuresmoment1.slice(4, 12);

    var mom3 = heuresmoment1.slice(13, 23);

    var randomIndex = Math.floor(Math.random() * heuresmoment1.length);

    var Consigne = ['Il est '];

    document.write(Consigne + (heuresmoment1[randomIndex]).bold() + '.');

    var img1 = document.getElementById("moment1");
    var img2 = document.getElementById("moment2");
    var img3 = document.getElementById("moment3");

 function bon1() {
        if(randomIndex.value == mom1.value) {
            moment1.style.display = 'inline';
            gris1.style.display = 'none';
        }
        else {
            moment1.style.display = 'none';
            gris1.style.display = 'inline';
        }
    }

 function bon2() {
        if(randomIndex.value == mom2.value) {
            moment2.style.display = 'inline';
            gris2.style.display = 'none';
        }
        else {
            moment1.style.display = 'none';
            gris2.style.display = 'inline';
        }
    }

 function bon3() {
        if(randomIndex.value == mom3.value) {
            moment3.style.display = 'inline';
            gris3.style.display = 'none';
        }
        else {
            moment3.style.display = 'none';
            gris3.style.display = 'inline';
        }
    }

</script>
</div>


</body>

我设法显示随机时间,但我根据随机时间更改图像的代码不起作用。我没有收到任何错误消息,它只是没有改变任何东西。

【问题讨论】:

  • 我不是刻薄的意思,但你的逻辑全错了:(
  • randomIndex 只是一个索引,一个整数,没有randomIndex.value。此外,mom1、mom2 和 mom3 是字符串数组。也没有mom1.value。调试它,你会看到它返回了undefined
  • 要检查一个字符串是否在一个字符串数组中,你可以这样做:mom1.indexOf('19 heures') === -1

标签: javascript string random


【解决方案1】:

欢迎来到 StackOverflow。

你必须重新考虑你的逻辑,你有太多function会做同样的事情。 我以不同的方式重构您的代码,希望对您有所帮助;)

jsFiddle

【讨论】:

    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 2019-07-22
    • 2017-05-20
    • 1970-01-01
    相关资源
    最近更新 更多