Javascript JS和HTML隐藏div不工作

Javascript JS和HTML隐藏div不工作,javascript,html,css,Javascript,Html,Css,我已经建立了一个标签栏网站,只使用一个页面,我正在使用js隐藏3个元素,并显示一个。当我点击链接显示一个,隐藏其他链接时,一切都乱七八糟,显示3个或2个是随机的。这是我的密码 函数取消隐藏(divID,otherDivId,otherDivId,otherDivId){ var item=document.getElementById(divID); 如果(项目){ item.className=(item.className='hidden')?'unhidden':'hidden'; }

我已经建立了一个标签栏网站,只使用一个页面,我正在使用js隐藏3个元素,并显示一个。当我点击链接显示一个,隐藏其他链接时,一切都乱七八糟,显示3个或2个是随机的。这是我的密码

函数取消隐藏(divID,otherDivId,otherDivId,otherDivId){
var item=document.getElementById(divID);
如果(项目){
item.className=(item.className='hidden')?'unhidden':'hidden';
}
document.getElementById(otherDivId).className='hidden';
}
。隐藏{
显示:无;
}
.未隐藏{
显示:块;
}

测试1


您是否尝试过
项。类列表

您可以尝试以下方法:

if(item.classList.contains("hidden")){
    item.classList.remove("hidden");
    item.classList.add("unhidden");
}else{
    item.classList.add("hidden");
    item.classList.remove("unhidden");
}

也许你想要这样的东西:

if(item.classList.contains("hidden")){
    item.classList.remove("hidden");
    item.classList.add("unhidden");
}else{
    item.classList.add("hidden");
    item.classList.remove("unhidden");
}
var-anchors=document.querySelectorAll(“.bottom.tab”),
showHide=函数(e){
var parent=this.parentNode;
anchors.forEach(a=>{
var relatedDiv=document.getElementById(a.dataset.tab),
aClass=a.className.trim();
如果(a.dataset.tab!=this.dataset.tab){
relatedDiv.className=relatedDiv.className.replace(“未隐藏”、“隐藏”)+“隐藏”;
a、 className=aClass.replace(“当前的”,“当前的”);
}否则{
relatedDiv.className=relatedDiv.className.replace(“隐藏”、“隐藏”)+“未隐藏”;
a、 className=aClass.replace(“当前的”、“当前的”)+“当前的”;
}
});
};
anchors.forEach(a=>a.addEventListener(“单击”,showHide))
。隐藏{
显示:无;
}
.未隐藏{
显示:块;
}

调整

其他

更多


otherDivId,otherDivId,otherDivId
你希望它能做什么?@epascarello有4个div,当你取消隐藏1时,它会隐藏另3个div,在你的锚中使用内联javascript和脚本是一个非常非常坏的习惯。我会将所有内容移到脚本中。你的函数需要2个参数-你要传递它4个参数。是的,但不能对每个参数使用相同的变量名。大多数开发人员都会有一个所有元素的集合,循环并隐藏。每个div中都应该有一个页脚,对应的“tab current”@WillMays是这样的吗?实际上,你真的不需要为每个div复制页脚。我根据它是什么div来更改页脚类的值js不工作,它不显示或隐藏任何内容只是停留在上面home@WillMays检查更新。检查链接的类别。