Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示/隐藏单击div,所需:一次显示一个项目_Javascript_Html_Show Hide - Fatal编程技术网

Javascript 显示/隐藏单击div,所需:一次显示一个项目

Javascript 显示/隐藏单击div,所需:一次显示一个项目,javascript,html,show-hide,Javascript,Html,Show Hide,我已经用js设置了一个show/hide div,我很难弄清楚如何一次显示一个div。当前发生的情况是,除非我再次单击原始链接以关闭div,否则将显示每个div 首先试着理解需求。需要显示一个块,并在单击链接时隐藏其他块。只需使用document.getElementById,并将样式.display属性设置为none,将需要隐藏的设置为block 有一个类似这样的javascript(根据需要进行更改): 功能切换(divName1、divName2、divName3){ var div1=

我已经用js设置了一个show/hide div,我很难弄清楚如何一次显示一个div。当前发生的情况是,除非我再次单击原始链接以关闭div,否则将显示每个div


首先试着理解需求。需要显示一个块,并在单击链接时隐藏其他块。只需使用
document.getElementById
,并将
样式.display
属性设置为
none
,将需要隐藏的设置为
block

有一个类似这样的javascript(根据需要进行更改):


功能切换(divName1、divName2、divName3){
var div1=document.getElementById(“+divName1”);
div1.style.display=“块”;
var div2=document.getElementById(“+divName2”);
div2.style.display=“无”;
var div3=document.getElementById(“+divName3”);
div3.style.display=“无”;
}
和html代码:

 <a href="#" onclick="toggle('div1','div2','div3');">DIV 1</a><div id="div1" style="display:none">hello1</div><br/>
 <a href="#" onclick="toggle('div2','div1','div3');">DIV 2</a><div id="div2" style="display:none">hello2</div><br/>
 <a href="#" onclick="toggle('div3','div2','div1');">DIV 3</a><div id="div3" style="display:none">hello3</div><br/>
<table width=100%>
  <tr>
    <td>
       <a href="#" onclick="toggle('div1','div2','div3');">DIV 1</a><br/>
       <a href="#" onclick="toggle('div2','div1','div3');">DIV 2</a><br/>
       <a href="#" onclick="toggle('div3','div2','div1');">DIV 3</a>
    </td>
    <td>
      <div class="divInfo" id="div1">Div 1 Information</div>
      <div class="divInfo" id="div2">Div 2 Information</div>
      <div class="divInfo" id="div3">Div 3 Information</div>
    </td>
  </tr>
</table>
hello1
hello2
hello3

首先尝试了解需求。需要显示一个块,并在单击链接时隐藏其他块。只需使用
document.getElementById
,并将
样式.display
属性设置为
none
,将需要隐藏的设置为
block

有一个类似这样的javascript(根据需要进行更改):


功能切换(divName1、divName2、divName3){
var div1=document.getElementById(“+divName1”);
div1.style.display=“块”;
var div2=document.getElementById(“+divName2”);
div2.style.display=“无”;
var div3=document.getElementById(“+divName3”);
div3.style.display=“无”;
}
和html代码:

 <a href="#" onclick="toggle('div1','div2','div3');">DIV 1</a><div id="div1" style="display:none">hello1</div><br/>
 <a href="#" onclick="toggle('div2','div1','div3');">DIV 2</a><div id="div2" style="display:none">hello2</div><br/>
 <a href="#" onclick="toggle('div3','div2','div1');">DIV 3</a><div id="div3" style="display:none">hello3</div><br/>
<table width=100%>
  <tr>
    <td>
       <a href="#" onclick="toggle('div1','div2','div3');">DIV 1</a><br/>
       <a href="#" onclick="toggle('div2','div1','div3');">DIV 2</a><br/>
       <a href="#" onclick="toggle('div3','div2','div1');">DIV 3</a>
    </td>
    <td>
      <div class="divInfo" id="div1">Div 1 Information</div>
      <div class="divInfo" id="div2">Div 2 Information</div>
      <div class="divInfo" id="div3">Div 3 Information</div>
    </td>
  </tr>
</table>
hello1
hello2
hello3

您可以根据上述示例添加一些样式:

<script type="text/javascript">
     function toggle(divName1,divName2,divName3){
         var div1=document.getElementById(""+divName1);
         div1.style.display="block";
         var div2=document.getElementById(""+divName2);
         div2.style.display="none";
         var div3=document.getElementById(""+divName3);
         div3.style.display="none";
     }
</script>
<style type="text/css">
.divInfo { 
  display:none;
  border:1px solid red;
  height:200px;
  width:200px;
}
</style>

功能切换(divName1、divName2、divName3){
var div1=document.getElementById(“+divName1”);
div1.style.display=“块”;
var div2=document.getElementById(“+divName2”);
div2.style.display=“无”;
var div3=document.getElementById(“+divName3”);
div3.style.display=“无”;
}
divInfo{
显示:无;
边框:1px纯红;
高度:200px;
宽度:200px;
}
和html代码:

 <a href="#" onclick="toggle('div1','div2','div3');">DIV 1</a><div id="div1" style="display:none">hello1</div><br/>
 <a href="#" onclick="toggle('div2','div1','div3');">DIV 2</a><div id="div2" style="display:none">hello2</div><br/>
 <a href="#" onclick="toggle('div3','div2','div1');">DIV 3</a><div id="div3" style="display:none">hello3</div><br/>
<table width=100%>
  <tr>
    <td>
       <a href="#" onclick="toggle('div1','div2','div3');">DIV 1</a><br/>
       <a href="#" onclick="toggle('div2','div1','div3');">DIV 2</a><br/>
       <a href="#" onclick="toggle('div3','div2','div1');">DIV 3</a>
    </td>
    <td>
      <div class="divInfo" id="div1">Div 1 Information</div>
      <div class="divInfo" id="div2">Div 2 Information</div>
      <div class="divInfo" id="div3">Div 3 Information</div>
    </td>
  </tr>
</table>



第一组资料 第2组资料 第3组资料
您可以根据上述示例添加一些样式:

<script type="text/javascript">
     function toggle(divName1,divName2,divName3){
         var div1=document.getElementById(""+divName1);
         div1.style.display="block";
         var div2=document.getElementById(""+divName2);
         div2.style.display="none";
         var div3=document.getElementById(""+divName3);
         div3.style.display="none";
     }
</script>
<style type="text/css">
.divInfo { 
  display:none;
  border:1px solid red;
  height:200px;
  width:200px;
}
</style>

功能切换(divName1、divName2、divName3){
var div1=document.getElementById(“+divName1”);
div1.style.display=“块”;
var div2=document.getElementById(“+divName2”);
div2.style.display=“无”;
var div3=document.getElementById(“+divName3”);
div3.style.display=“无”;
}
divInfo{
显示:无;
边框:1px纯红;
高度:200px;
宽度:200px;
}
和html代码:

 <a href="#" onclick="toggle('div1','div2','div3');">DIV 1</a><div id="div1" style="display:none">hello1</div><br/>
 <a href="#" onclick="toggle('div2','div1','div3');">DIV 2</a><div id="div2" style="display:none">hello2</div><br/>
 <a href="#" onclick="toggle('div3','div2','div1');">DIV 3</a><div id="div3" style="display:none">hello3</div><br/>
<table width=100%>
  <tr>
    <td>
       <a href="#" onclick="toggle('div1','div2','div3');">DIV 1</a><br/>
       <a href="#" onclick="toggle('div2','div1','div3');">DIV 2</a><br/>
       <a href="#" onclick="toggle('div3','div2','div1');">DIV 3</a>
    </td>
    <td>
      <div class="divInfo" id="div1">Div 1 Information</div>
      <div class="divInfo" id="div2">Div 2 Information</div>
      <div class="divInfo" id="div3">Div 3 Information</div>
    </td>
  </tr>
</table>



第一组资料 第2组资料 第3组资料
就我个人而言,我会去掉所有妨碍javascript的内联事件处理程序,只使用这行代码,将所有javascript放在一个地方,放在文档底部

每次单击链接时,它都会将该链接与div关联,隐藏面板的所有子div,然后显示与链接关联的div 只需删除所有内联javascript事件处理程序

var x = document.getElementsByTagName('ul');
var panel = document.getElementById('panel');
var ul = document.getElementsByTagName('ul')[1]
var lis = ul.children
for (i=0; i<lis.length; i++) {
lis[i].addEventListener('click', function (event) {
    var toggleId = "toggle"
    var id = event.target.id;
    var cutID = id.slice(7);
    toggleId = toggleId + cutID
    var panelChildren = panel.children
    for (j=0; j<panelChildren.length; j++) {
        panelChildren[j].style.display = "none"
    }
    document.getElementById(toggleId).style.display = "block"

}, false)
}
var x=document.getElementsByTagName('ul'); var panel=document.getElementById('panel'); var ul=document.getElementsByTagName('ul')[1] var lis=ul儿童
对于(i=0;i个人而言,我会去掉所有的内联事件处理程序,它们都是突兀的javascript,只需使用这行代码,其中所有javascript都放在一个地方,并放在文档的底部

每次单击链接时,它都会将该链接与div关联,隐藏面板的所有子div,然后显示与链接关联的div 只需删除所有内联javascript事件处理程序

var x = document.getElementsByTagName('ul');
var panel = document.getElementById('panel');
var ul = document.getElementsByTagName('ul')[1]
var lis = ul.children
for (i=0; i<lis.length; i++) {
lis[i].addEventListener('click', function (event) {
    var toggleId = "toggle"
    var id = event.target.id;
    var cutID = id.slice(7);
    toggleId = toggleId + cutID
    var panelChildren = panel.children
    for (j=0; j<panelChildren.length; j++) {
        panelChildren[j].style.display = "none"
    }
    document.getElementById(toggleId).style.display = "block"

}, false)
}
var x=document.getElementsByTagName('ul'); var panel=document.getElementById('panel'); var ul=document.getElementsByTagName('ul')[1] var lis=ul儿童
对于(i=0;i)它只是一个演示,让您了解应该做什么。它只是一个演示,让您了解应该做什么。最好在每个函数中重新声明toggleId变量最好在每个函数中重新声明toggleId变量