鱼C论坛

 找回密码
 立即注册
查看: 1434|回复: 3

大佬鼠们救救孩子吧,这个JS总是报错

[复制链接]
发表于 2022-1-21 15:14:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大佬鼠们帮忙康康一下代码,运行起来貌似没什么问题,部署功能看似都能实现,但是在控制台总是报错,查了下说好像要用箭头函数来代替,试了下也不管用,麻了啊,以下是js代码,最后面我会把报错提示附上

<script>
    // 正则表达式限定输入内容
    var nameRex = /(^[A-Z]{1}[a-z]{1,7}$)|(^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$)/
    var emailRex = /^[A-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
    salaryRex = /^\d+\d$/

    // 判断输入是否合法的函数
    function inFoTest(testT,text) {
        return testT.test(text);
    };
   

    // 绑定提交按钮点击事件
    var btn = document.querySelector('button');
    btn.addEventListener('click',function() {
        var box2 = document.querySelector('.box2');
        var lis = box2.querySelectorAll('ul li input');
        var nameText = lis[0].value;
        var infoName = lis[0].name;
        var infoEmname = lis[1].name;
        var emailText = lis[1].value;
        var salaryText = lis[2].value;
        var infoSal = lis[2].name;
        var table = document.querySelector('table');
        var tr = document.createElement('tr');
        // 创建一个数组存储合法的信息
        var list = [];
        if(!nameText) {
            alert('您输入的姓名为空,请重新输入!');
        }else{
            if(inFoTest(nameRex,nameText)) {
                if(!emailText) {
                    alert('您输入的邮箱为空,请重新输入!');
                }else{
                    if(inFoTest(emailRex,emailText)) {
                        if(!salaryText) {
                            alert('您输入的奖金为空,请重新输入!');
                        }else{
                            if(inFoTest(salaryRex,salaryText)) {
                                list.push(nameText);
                                list.push(emailText);
                                list.push(salaryText);
                                for(var i=0;i<list.length+1;i++) {
                                    if(i<list.length) {
                                        tr.innerHTML += '<td>'+list[i]+'</td>';
                                    }else{
                                        tr.innerHTML += '<td><a href="javascript:;" ">Delete</a></td>';
                                    }

                                };
                                table.appendChild(tr);
                                
                            }else{
                                alert('您输入的奖金有误,请重新输入!');
                            }
                        }
                    }else{
                        alert('您输入的邮箱有误,请重新输入!');
                    }
                }
            }else{
                alert('您输入的姓名有误,请重新输入!');
            }
        };

        
        var aDs = tr.getElementsByTagName('a');
        var Dels = document.getElementsByTagName('a');
        for(var i=0;i<Dels.length;i++) {
            aDs[i].addEventListener('click',function() {
                var table = document.querySelector('table');
                var name = this.parentElement.parentElement.firstElementChild.innerHTML;
                // alert(name)
                if(confirm('是否确认删除'+name+'的信息?')) {
                    table.removeChild(this.parentElement.parentElement);
                };
            })
        };
    });

   
   
    // 为Delete绑定点击事件
    var Dels = document.getElementsByTagName('a');
    for(var i=0;i<Dels.length;i++) {
        Dels[i].addEventListener('click',function() {
            var table = document.querySelector('table');
            var name = this.parentElement.parentElement.firstElementChild.innerHTML;
            // alert(name)
            if(confirm('是否确认删除'+name+'的信息?')) {
                table.childNodes[1].removeChild(this.parentElement.parentElement);
               
            }
        })
    }
</script>


附:
        
       Uncaught TypeError: Cannot read properties of undefined (reading 'addEventListener')
    at HTMLButtonElement.<anonymous> (model002.html:199:20)
(匿名) @ model002.html:199

麻烦大佬鼠们啦,拜上!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-21 15:47:45 | 显示全部楼层
是不是浏览器版本问题,IE8和IE8以前版本不支持addEventListener,要换成attachEvent()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-21 16:19:42 | 显示全部楼层
翼是孤独 发表于 2022-1-21 15:47
是不是浏览器版本问题,IE8和IE8以前版本不支持addEventListener,要换成attachEvent()

啊,可是用QQ浏览器和edge也是这个鬼样子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-22 16:20:49 | 显示全部楼层
终于解决了,事件委托干就完了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-29 07:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表