Uncaught TypeError:Cannot set property 'checked' of null...

本文分享了一次在JavaScript代码中遇到的奇怪错误经历,错误在代码正确执行后仍出现在控制台。通过网络搜索和自我排查,最终发现是由于元素ID获取错误导致。文章详细记录了错误排查过程及解决方案,提醒开发者注意代码细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在写一段代码时,遇见的小错误;代码能够正确的执行,到时每次正确执行输出后,控制台总是多出这一条代码错误。于是在网上搜了许多的解决方法,但还是解决不了,网上的说法有:报错的原因是js执行时在元素渲染之前,从而导致报错,建议使用addEventListener()方法解决,可是我试过后无效。最后排查,发现是自己写的代码错误(获取元素的id值写错),才导致这种低级错误!【以下代码备注改过的出错地方】,对于有类似错误bug的伙伴,不妨检查一下自己的代码是否有误!

 var checkAll=document.querySelector("#checkAll");//之前是这里#checkAll写错!已改
...
...
//1.当所有都打勾时,全选为打勾状态
    lis.forEach(function(item){
        //获取每个li标签里面的input标签
        let checkbox=item.querySelector("input");
        //console.log(checkbox);
        checkbox.onchange=function(){
            //给选中的li元素添加class
            item.className=checkbox.checked?"active":"";
             checkAll.checked = lis.every(item=>item.querySelector("input").checked);
        }

    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值