我不知道为什么这不起作用。我的意思是据我所知它应该按字母顺序打印我的数组到div“输出”
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title> Lexicographic ordering </title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var words = [];
var input = prompt("Please enter a word or type end to stop prompts");
while (input != 'end') {
words.push(input);
input = prompt("Please enter a word or type end to stop prompts");
}
words.sort();
getElementById('#output').innerHTML= words.join();
</script>
</head>
<body>
<header>Lexicographic Ordering </header>
<hr>
<div class ="page-wrapper">
h1> Lexicographic Ordering </h1>
<div id="output"></div>
</div>
</body>
</html>
答案 0 :(得分:4)
您的代码中有两个小错误,它们都在这一行中:
getElementById('#output').innerHTML= words.join();
getElementById
不是window
的一部分,它是document
对象的一部分,因此您必须正确引用它。此外,该方法采用ID而不是选择器,因此您不需要前面的#。
document.getElementById('output').innerHTML= words.join();
那应该做你想要的!或者,因为我注意到你包含了jQuery,你可以$('#output').innerHTML = ...
来实现相同的效果。
答案 1 :(得分:2)
您可能还会尝试在<script>
关闭之前移动</body>
块。 <div id="output"></div>
之后的任何地方。
某些浏览器上的JavaScript在脚本执行或尝试引用它们时必须引用一些尚未被HTML解析器解析的元素时会失败。
此外,您不会将#
与getElementById(...);
一起使用。 #
与Jquery一起使用。这是纯JavaScript。设为getElementById('output').whatever...;
Patrick Evans建议的另一个选项是在onload()
事件处理程序方法中移动JavaScript代码以执行代码。这可以确保在我们尝试操作之前将HTML完全加载到DOM中。