大佬鼠们救救孩子吧,这个JS总是报错
大佬鼠们帮忙康康一下代码,运行起来貌似没什么问题,部署功能看似都能实现,但是在控制台总是报错,查了下说好像要用箭头函数来代替,试了下也不管用,麻了啊,以下是js代码,最后面我会把报错提示附上<script>
// 正则表达式限定输入内容
var nameRex = /(^{1}{1,7}$)|(^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$)/
var emailRex = /^+@+(\.+)+$/
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.value;
var infoName = lis.name;
var infoEmname = lis.name;
var emailText = lis.value;
var salaryText = lis.value;
var infoSal = lis.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+'</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.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.addEventListener('click',function() {
var table = document.querySelector('table');
var name = this.parentElement.parentElement.firstElementChild.innerHTML;
// alert(name)
if(confirm('是否确认删除'+name+'的信息?')) {
table.childNodes.removeChild(this.parentElement.parentElement);
}
})
}
</script>
附:
Uncaught TypeError: Cannot read properties of undefined (reading 'addEventListener')
at HTMLButtonElement.<anonymous> (model002.html:199:20)
(匿名) @ model002.html:199
麻烦大佬鼠们啦,拜上! 是不是浏览器版本问题,IE8和IE8以前版本不支持addEventListener,要换成attachEvent() 翼是孤独 发表于 2022-1-21 15:47
是不是浏览器版本问题,IE8和IE8以前版本不支持addEventListener,要换成attachEvent()
啊,可是用QQ浏览器和edge也是这个鬼样子{:5_107:} {:10_254:}终于解决了,事件委托干就完了{:5_109:}{:5_109:}{:5_109:}
页:
[1]