我想要做的是输出一个带有更改文本的引用生成器

时间:2012-10-01 10:01:43

标签: javascript arrays

我想生成一些引文,其中文本和图片是随机的。有人可以验证这段代码,因为它不起作用。按下提交时没有任何反应。

<html>
    <head>
    <title>quote generator Javascript</title>
    </head>
    <body>

    <script type="text/javascript">

    quote = new Array()

    quote[0] = 'img/einstein.jpg';
    quote[1] = 'img/einstein.jpg';
    quote[2] = 'img/einstein.jpg';
    quote[3] = 'img/einstein.jpg';

    text = new Array()

    text[0] = 'hallo1';
    text[1] = 'hallo2';
    text[2] = 'hallo3';
    text[3] = 'hallo4';

    function popup(){
        if(['submit']){

            document.write('<a href="' + text[Math.floor(Math.random() * text.lenght)]; + '" ><img src="' + quote[Math.floor(Math.random() * quote.lenght)]; '" style="border:0px;" >');
        }
    }


    </script>

    <input type="button" value="random quote" id="submit" onclick="popup()">

    </body>
    </html>

2 个答案:

答案 0 :(得分:1)

由于您的if条件,您的代码无效 由于

(['submit'] == true)  // false

您永远不会执行document.write语句,因此请删除if。还

quote.lenght

应该是

quote.length

text同上

最后,使用innerHTML方法或createElement/appendChild方法代替document.write来正确注入标记

答案 1 :(得分:0)

Fabrizio的回答指出了代码的大部分问题。

我觉得你不需要
if(['submit'])

行,因为除非按下提交按钮,否则弹出功能将永远不会执行。

此外,在生成随机数时,您需要执行以下操作:

text[Math.floor(Math.random() * (text.length-1))]

这是因为text.length = 4,但没有文本[4]