2016-01-04 86 views
1

这似乎应该是非常基本的,我不明白为什么它不工作。我有一个超级简单的页面,到目前为止,我想用JS选择段落:为什么“getElementsByTagName”找不到任何东西?

这里是我的HTML:

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="misc.js" type="text/javascript"></script> 
    </head> 
    <body> 
    <p id="first">Just one paragraph.</p> 
    <p id="second">Two, actually.</p> 
    </body> 
</html> 

而我的JS:

var paras = document.getElementsByTagName('p'); 
console.log(paras.length); 

我希望控制台日志显示2但我看到0。我仔细阅读the documentation,我无法弄清楚我在这里做错了什么。

+0

似乎在这个小提琴中工作正常https://jsfiddle.net/0xjhznta/2/ –

回答

5

当您运行脚本时,文档中没有段落。

要么移动脚本元素,使其出现在段落后面,要么将代码放入函数中,然后稍后调用该函数(例如,当启动loadevent时)。

+0

浏览器解析您的html页面,并在html body开始解析之前找到您的脚本。为了避免这种情况,您可以将脚本标记放在标记''的底部,或者在加载DOM后执行JavaScript代码。 'document.addEventListener('DOMContentLoaded',function(){ //代码 })' –

+0

我觉得自己像一个涂料,但...呃。谢谢。 – Amanda

相关问题