无法调用null的方法'getElementsByTagName'

时间:2013-12-17 17:59:26

标签: javascript null getelementsbytagname

我正在尝试一些基本的Javascript,选择元素和标签,但它给了我一些问题。 具体来说,我在使用chrome或firefox的开发工具中得到了这个错误:

未捕获的TypeError:无法调用方法'getElementsByTagName'为null

奇怪的是,当我在浏览器的控制台中输入javascript命令时,它没有问题。 (在包装器div中选择p标签)

这是我的HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test</title>
  <link rel="stylesheet" href="default.css" />
  <script type="text/javascript" src="selection.js"></script>
</head>
<body>
    <div id="wrapper">
        <p>Hello, this is a paragraph</p>
        <p>Another one!</p>
        <p>This is yet another paragraph</p>
    </div>
</body>
</html>

然后我的Javascript就是:

window.onload = initP();

function initP() {
    var para = document.getElementById('wrapper').getElementsByTagName('p');
}

2 个答案:

答案 0 :(得分:1)

您正在调用该函数,而不是分配它。

window.onload = initP();

需要

window.onload = initP;

您附加事件的方式的缺点是,如果在注册到onload事件之前还有其他任何内容,您将覆盖它。最好使用element.addEventListener

答案 1 :(得分:1)

尝试:

window.onload = initP;

而不是

window.onload = initP();

正在调用该函数而不是分配它。