Javascript 未捕获类型错误:无法设置属性';onclick';空的onclick不工作
下面是我的javascriptJavascript 未捕获类型错误:无法设置属性';onclick';空的onclick不工作,javascript,html,Javascript,Html,下面是我的javascript <script type="text/javascript"> document.getElementById('auth').onclick=change; function change(){ this.className="account_holder"; } </script> document.getElementById('auth')。onclick=change; 函数更改(){ this.className=“
<script type="text/javascript">
document.getElementById('auth').onclick=change;
function change(){
this.className="account_holder";
}
</script>
document.getElementById('auth')。onclick=change;
函数更改(){
this.className=“账户持有人”;
}
html是
<td id="auth" class="authorised_reportericon" >
<a href="{% url incident.views.authorised_reporter %}">
<p align="center" style="color:black;font-size:16px;">Authorised Reporters</p></a>
</td>
我为onclick分配了td的id,但它将错误设置为未捕获的TypeError:无法将属性“onclick”设置为null。getElementById('auth')。onclick=change代码>在
窗口内。onload
,如:
window.onload = function () {
document.getElementById('auth').onclick=change;
};
根据您得到的错误,我猜您的Javascript是在呈现相关HTML之前执行的,这意味着找不到具有id
“auth”的元素。将它放在整个DOM就绪的事件中应该可以解决问题
演示:很可能您已将脚本放置在文档的
标题中,这意味着它在呈现页面其余部分之前运行
相反,将其移动到正文
中的最底部,就在关闭
标记之前
<!doctype html>
<html>
<head>
<title>my page</title>
</head>
<body>
<!-- your page content -->
<!-- your script -->
<script type="text/javascript">
document.getElementById('auth').onclick=change;
function change(){
this.className="account_holder";
}
</script>
</body>
</html>
我的页面
document.getElementById('auth')。onclick=change;
函数更改(){
this.className=“账户持有人”;
}
现在,这些元素将在脚本运行之前可用。这是因为页面按从上到下的顺序呈现,加载时脚本会阻止呈现
因此,当脚本位于头部时,它会阻止其下方页面的其余部分呈现,直到脚本完成,这意味着“auth”
还不存在
使用脚本的这种末端定位技术,可以使它比等待窗口.onload
事件更快地运行。之所以发生这种情况,是因为ID为“auth”的元素不存在。为什么?因为DOM还没有完全加载以了解元素。使用window.onload=function(){}
并放入逻辑there@mattytommo谢谢:)呵呵,没问题,我已经设置好了(只有他的代码)当你发布答案时,我添加了你的代码以确保,然后我想我会+1你并添加链接,因为你是对的!:)