js点击事件的时候浏览器报错,提示Uncaught TypeError: Cannot set property 'onclick' of null

1、把js代码放在head或者事件之前会报错,报错代码如下

 <script>
        //删除选择联系人
        window.onload=function (ev) {
            document.getElementById("deleteSelected").onclick=function (ev2) {
                document.getElementById("form").submit();
            }
        }
        //点击第一次checkbox全选
       document.getElementById("checkFirst").onclick=function(ev) {
               var names = document.getElementsByName('uid');
               for (var i = 0;i < names.length;i++){
                   names[i].checked = this.checked;
               }
       }
    </script>

报错信息:

<mark>出错原因:</mark>
页面还没加载完成后就去获取checkFirst的元素属性,就会出错,js是html的一部分,并且解析是由上至下的,必须等到id = ’checkFirst‘的属性加载完成后才能获取元素对象。
<mark>解决方案:</mark>
在window.οnlοad=function(){……………}}里面即可解决,window.onload表示页面加载完成后执行的函数,这样JS代码即使放在中也可以完美实现效果。

        //删除选择联系人
        window.onload=function (ev) {
            document.getElementById("deleteSelected").onclick=function (ev2) {
                document.getElementById("form").submit();
            }
            //点击第一次checkbox全选
            document.getElementById("checkFirst").onclick=function(ev) {
                var names = document.getElementsByName('uid');
                for (var i = 0;i < names.length;i++){
                    names[i].checked = this.checked;
                }
            }
        }

参考:

https://blog.csdn.net/lily2016n/article/details/77980547?utm_source=blogxgwz5

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-20 14:01
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着接:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客919661971号:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务