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

全部评论

相关推荐

02-25 16:55
已编辑
北京工业大学 Java
211本,找日常实习的话,如果面向中厂的话,需要刷hot100么?因为之前从来没刷过,算法仅限于学校课程水平,准备3月投递简历,现在还需要背八股文,时间有些紧张,还需要刷算法题么?同时什么样的公司可以算是中厂呢?
程序员小白条:中大厂说的上名字的,必定要算法,hot100只是最基础的了,题库远不止100题捏,一般在300-400题量之间,算法=学校课程=简单题也做不出,多准备八股文和算法吧,其他项目可以放放,精刷算法就行了,花时间成长很快的
点赞 评论 收藏
分享
要AC不要WA:投一天,喜提两笔试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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