Jscript没有打印到元素

时间:2013-10-05 03:58:59

标签: javascript html

我不知道为什么这不起作用。我的意思是据我所知它应该按字母顺序打印我的数组到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>

2 个答案:

答案 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中。