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

页面下部广告