我不知道为什么这不管用。我的意思是,据我所知,它应该按字母顺序将数组打印到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>发布于 2013-10-05 04:21:09
您还可以尝试在结束<script>之前移动</body>块。在<div id="output"></div>之后的任何地方。
某些浏览器上的JavaScript在执行或试图引用脚本时必须引用某些元素时失败,而这些元素没有被它们的HTML解析器解析。
另外,您也不将#与getElementById(...);结合使用。#与Jquery一起使用。这是纯JavaScript。让它成为getElementById('output').whatever...;
编辑:
Patrick建议的另一个选项是将JavaScript代码移动到onload()事件处理程序方法中以执行代码。这可以确保在我们尝试操作HTML之前,HTML已经完全加载到DOM中。
发布于 2013-10-05 04:05:58
您的代码中有两个小错误,它们都在这一行中:
getElementById('#output').innerHTML= words.join();getElementById不是window的一部分,它是document对象的一部分,所以您必须正确地引用它。而且,该方法使用的是ID,而不是选择器,因此不需要前面的#。
document.getElementById('output').innerHTML= words.join();你想怎么做就怎么做!或者,由于我注意到您包含了jQuery,所以可以使用$('#output').innerHTML = ...来实现相同的效果。
https://stackoverflow.com/questions/19193800
复制相似问题