我想在当前页面上打印一个随机字符串

时间:2014-03-05 14:21:51

标签: javascript

我是javascript的新手,但我想要一个随机字符串。这个字符串应该打印在我当前的页面上。 我已经有了:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <script type="text/javascript">
var strings = ['aaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', 'ccccccccccccccccccccccccccccccccccccccc'];
var randomIndex = Math.floor(Math.random() * strings.length);
var randomString = strings[randomIndex];
document.getElementById('randomString').innerHTML = randomString;
</script>
</head>
<body>
<div id="randomString"></div>
</body>
根据JSFiddle的说法,这应该可行,但事实并非如此。我应该改变什么?

3 个答案:

答案 0 :(得分:1)

它不起作用,因为你的javascript是在#randomString div存在之前执行的。因此,您需要在代码中的#randomString div之后移动javascript,或者在文档准备好时使用onLoad属性来执行函数,这意味着您需要将当前代码包装在函数中。 / p>

答案 1 :(得分:1)

在DOM中存在之前,您尝试访问标识为div的{​​{1}}。将randomString移到底部(<script>之后的某个位置),它就会起作用。

div
不过,您的代码错过了<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <div id="randomString"></div> <script type="text/javascript"> var strings = ['aaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', 'ccccccccccccccccccccccccccccccccccccccc']; var randomIndex = Math.floor(Math.random() * strings.length); var randomString = strings[randomIndex]; document.getElementById('randomString').innerHTML = randomString; </script> </body> </html>

答案 2 :(得分:1)

您可以尝试:

window.onload=function(){

var strings = ['aaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',    'ccccccccccccccccccccccccccccccccccccccc'];
var randomIndex = Math.floor(Math.random() * strings.length);
var randomString = strings[randomIndex];
document.getElementById('randomString').innerHTML = randomString;

 }