Cannot set property ‘onclick‘ of null 报错

检查发现js代码如下:

<script>
    function deleteUser(id) {
        if (confirm("你确定要删除吗")){
        location="${pageContext.request.contextPath}/delUserServlet?id="+id;
        }
    }
    window.οnlοad=function () {
        //给删除选中按钮添加单击事件delSelect
        document.getElementById("delSelect").οnclick=function () {
            //表单提交
            /*document.getElementsByTagName("form")[1].submit();*/
            document.getElementById("formed").submit();
        }
        //获取第一个cb  firstCb

    }
    document.getElementById("firstCb").οnclick=function () {
        //获取下列表所有的cb
        var cbs = document.getElementsByName("uid");
        //遍历每一个cb
        for (var i=0;i<cbs.length;i++){
            //这是这些cbs[i]的checked的状态=firstCb的checked
            cbs[i].checked=this.checked;
        }
    }

</script>

当js文件放在head里面时,如果绑定了onclick事件,就会出现这样的错误,是因为W3School的写法是浏览器先加载完按钮节点才执行的js,所以当浏览器自顶向下解析时,找不到onclick绑定的按钮节点,于是报错。因此,需要把js文件放在底部加载,就会避免该问题。或者像如下操作,将代码放在window.οnlοad=function(){  }的匿名函数中

<script>
    function deleteUser(id) {
        if (confirm("你确定要删除吗")){
        location="${pageContext.request.contextPath}/delUserServlet?id="+id;
        }
    }
    window.οnlοad=function () {
        //给删除选中按钮添加单击事件delSelect
        document.getElementById("delSelect").οnclick=function () {
            //表单提交
            /*document.getElementsByTagName("form")[1].submit();*/
            document.getElementById("formed").submit();
        }
        //获取第一个cb  firstCb
        document.getElementById("firstCb").οnclick=function () {
            //获取下列表所有的cb
            var cbs = document.getElementsByName("uid");
            //遍历每一个cb
            for (var i=0;i<cbs.length;i++){
                //这是这些cbs[i]的checked的状态=firstCb的checked
                cbs[i].checked=this.checked;
            }
        }
    }
   

</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值