我是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的说法,这应该可行,但事实并非如此。我应该改变什么?
答案 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;
}