Javascript 显示其他div时隐藏div

Javascript 显示其他div时隐藏div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在构建一个包含3个按钮的页面,每个按钮打开一个不同的div元素。我想要的是一次只显示一个div。因此,当一个div打开时,另一个div应该关闭 我设法创建了按钮,每个按钮打开一个不同的div元素。但我无法找到一种方法,在打开其他div时自动关闭该div var button1=document.getElementById(“button1”); var button2=document.getElementById(“button2”); var button3=document.get

我正在构建一个包含3个按钮的页面,每个按钮打开一个不同的div元素。我想要的是一次只显示一个div。因此,当一个div打开时,另一个div应该关闭

我设法创建了按钮,每个按钮打开一个不同的div元素。但我无法找到一种方法,在打开其他div时自动关闭该div

var button1=document.getElementById(“button1”);
var button2=document.getElementById(“button2”);
var button3=document.getElementById(“button3”);
var content1=document.getElementById(“content1”);
var content2=document.getElementById(“content2”);
var content3=document.getElementById(“content3”);
content1.style.display=“无”;
content2.style.display=“无”;
content3.style.display=“无”;
按钮1.addEventListener(“单击”,显示内容1);
按钮2.addEventListener(“单击”,显示内容2);
按钮3.addEventListener(“单击”,显示内容3);
函数showContent1(){
如果(content1.style.display!=“无”){
content1.style.display=“无”
}否则{
content1.style.display=“block”;
}
}
函数showContent2(){
如果(content2.style.display!=“无”){
content2.style.display=“无”
}否则{
content2.style.display=“block”;
}
}
函数showContent3(){
如果(content3.style.display!=“无”){
content3.style.display=“无”
}否则{
content3.style.display=“block”;
}
}
#按钮1,
#按钮2,
#按钮3{
宽度:50px;
高度:50px;
背景:浅蓝色;
保证金:5px;
光标:指针;
}
#内容1,
#内容二,,
#内容3{
宽度:100px;
高度:50px;
背景:蓝色;
颜色:白色;
保证金:5px;
}
按钮1
按钮2
按钮3
内容1
内容2

内容3
您可以将代码缩减为以下内容:

$("[id^=button]").click(function() {
  var id = $(this).attr("id").replace("button", "")
  $("#content" + id).toggle();
});
下面的代码此时只允许显示1个div

$("[id^=button]").click(function() {
  var id = $(this).attr("id").replace("button", "");
  $("[id^=content]").hide()
  $("#content" + id).show();
});
在这里,我们使用
^
来表示我们希望所有以
按钮开始的元素触发click事件

演示

$(“[id^=button]”。单击(函数(){
变量id=$(this.attr(“id”).replace(“按钮”),“”)
$(“#内容”+id).toggle();
});
#按钮1,
#按钮2,
#按钮3{
宽度:50px;
高度:50px;
背景:浅蓝色;
保证金:5px;
光标:指针;
}
#内容1,
#内容二,,
#内容3{
宽度:100px;
高度:50px;
背景:蓝色;
颜色:白色;
保证金:5px;
显示:无;
}

按钮1
按钮2
按钮3
内容1
内容2

内容3
您可以将代码缩减为以下内容:

$("[id^=button]").click(function() {
  var id = $(this).attr("id").replace("button", "")
  $("#content" + id).toggle();
});
下面的代码此时只允许显示1个div

$("[id^=button]").click(function() {
  var id = $(this).attr("id").replace("button", "");
  $("[id^=content]").hide()
  $("#content" + id).show();
});
在这里,我们使用
^
来表示我们希望所有以
按钮开始的元素触发click事件

演示

$(“[id^=button]”。单击(函数(){
变量id=$(this.attr(“id”).replace(“按钮”),“”)
$(“#内容”+id).toggle();
});
#按钮1,
#按钮2,
#按钮3{
宽度:50px;
高度:50px;
背景:浅蓝色;
保证金:5px;
光标:指针;
}
#内容1,
#内容二,,
#内容3{
宽度:100px;
高度:50px;
背景:蓝色;
颜色:白色;
保证金:5px;
显示:无;
}

按钮1
按钮2
按钮3
内容1
内容2
内容3
//查找所有按钮
document.querySelectorAll(“按钮[数据目标]”).forEach(el=>{
//在每个按钮上放置单击事件
el.addEventListener(“单击”,ev=>{
//单击时,隐藏所有div
让divs=document.getElementsByClassName(“我的div”);
对于(让div中的div){
div.style=“显示:无;”;
}
//然后显示此按钮应显示的div
//通过从数据目标属性获取其id并设置其样式
document.getElementById(el.getAttribute(“数据目标”)).style=“display:block;”;
});
});
.my div{
显示:无;
}
div1
第二组
第三组
内容1
内容2
内容3
//查找所有按钮
document.querySelectorAll(“按钮[数据目标]”).forEach(el=>{
//在每个按钮上放置单击事件
el.addEventListener(“单击”,ev=>{
//单击时,隐藏所有div
让divs=document.getElementsByClassName(“我的div”);
对于(让div中的div){
div.style=“显示:无;”;
}
//然后显示此按钮应显示的div
//通过从数据目标属性获取其id并设置其样式
document.getElementById(el.getAttribute(“数据目标”)).style=“display:block;”;
});
});
.my div{
显示:无;
}
div1
第二组
第三组
内容1
内容2

内容3
这里有一个标准的方法

请学习,看看我在哪里授权和增加了课程

在jQuery示例中使用toggle()在单击时打开和关闭

jQuery:

$(.button”)。在(“单击”上,函数(e){
$(“.content”).hide();
$(“#”+$(this.data(“id”)).show();//或.toggle()
});
。按钮{
宽度:50px;
高度:50px;
背景:浅蓝色;
保证金:5px;
光标:指针;
}
.内容{
宽度:100px;
高度:50px;
背景:蓝色;
颜色:白色;
保证金:5px;
显示:无;
}

按钮1
按钮2
按钮3
内容1
内容2

内容3
这里有一个标准的方法

请学习,看看我在哪里授权和增加了课程

在jQuery示例中使用toggle()在单击时打开和关闭

jQuery:

$(.button”)。在(“单击”上,函数(e){
$(“.content”).hide();
$(“#”+$(this.data(“id”)).show();//或.toggle()
});
。按钮{
宽度:50px;
高度:50px;
背景:浅蓝色;
保证金:5px;
光标:指针;
}
.内容{
宽度:100px;
高度:50px;
背景:蓝色;
颜色:白色;
保证金:5px;
显示:无;
}

按钮1
按钮2
按钮3
内容1
内容2

内容3
您甚至可以创建一个选项卡系统,而无需