我正在尝试一些基本的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');
}
答案 0 :(得分:1)
您正在调用该函数,而不是分配它。
window.onload = initP();
需要
window.onload = initP;
您附加事件的方式的缺点是,如果在注册到onload事件之前还有其他任何内容,您将覆盖它。最好使用element.addEventListener
答案 1 :(得分:1)
尝试:
window.onload = initP;
而不是
window.onload = initP();
正在调用该函数而不是分配它。