首先这个报错是指传入的参数没有内容为undefined,需要加判断当传入的值为undefined时执行什么操做,
代码演示
function openTab(evt, tabName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
console.log(tabcontent);
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
console.log(tablinks);
for (i = 0; i < tablinks.length; i++) {
tablinks[0].className.replace("active");
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(tabName).style.display = "block";
evt.currentTarget.className += " active";
// console.log(i);
// console.log(tabcontent);
// console.log(tablinks);
}
fu()
function fu(){
openTab("",'tab1')
}
}
当fu()函数执行时openTab(evt, tabName)中evet为空
正确写法
function openTab(evt, tabName) {
if(evt==''){
}else{
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
console.log(tabcontent);
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
console.log(tablinks);
for (i = 0; i < tablinks.length; i++) {
tablinks[0].className.replace("active");
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(tabName).style.display = "block";
evt.currentTarget.className += " active";
// console.log(i);
// console.log(tabcontent);
// console.log(tablinks);
}
}
fu()
function fu(){
openTab("",'tab1')
}
需要加一个event为空的判断。
希望可以帮助大家;