Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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/heroku/2.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
显示/隐藏div';用javascript在按钮上按下(并首先隐藏所有div';s)_Javascript_Html_Hide_Show - Fatal编程技术网

显示/隐藏div';用javascript在按钮上按下(并首先隐藏所有div';s)

显示/隐藏div';用javascript在按钮上按下(并首先隐藏所有div';s),javascript,html,hide,show,Javascript,Html,Hide,Show,我是javascript新手,一开始我无法隐藏div,我可以让div在彼此之间切换任何帮助都会很好 <script type="text/javascript"> function show(elementId) { document.getElementById("id1").style.display="none"; document.getElementById("id2").style.display="none"; document.getElementById("

我是javascript新手,一开始我无法隐藏div,我可以让div在彼此之间切换任何帮助都会很好

<script type="text/javascript">
function show(elementId) { 
 document.getElementById("id1").style.display="none";
 document.getElementById("id2").style.display="none";
 document.getElementById("id3").style.display="none";
 document.getElementById(elementId).style.display="block";
}
</script>


<button type="button" onclick="show('id1');">Button 1</button>
<button type="button" onclick="show('id2');">Button 2</button>
<button type="button" onclick="show('id3');">Button 3</button>

<div id="id1">text 1</div>
<div id="id2">text 2</div>
<div id="id3">text 3</div>

函数显示(elementId){
document.getElementById(“id1”).style.display=“无”;
document.getElementById(“id2”).style.display=“无”;
document.getElementById(“id3”).style.display=“无”;
document.getElementById(elementId).style.display=“block”;
}
按钮1
按钮2
按钮3
文本1
文本2
文本3

您可以使用纯CSS隐藏div,首先:

#id1, #id2 #id3 {
 display: none;
}

函数hideAll(){
document.getElementById(“id1”).style.display=“无”;
document.getElementById(“id2”).style.display=“无”;
document.getElementById(“id3”).style.display=“无”;
}
函数显示(elementId){
希德尔();
document.getElementById(elementId).style.display=“block”;
}
按钮1
按钮2
按钮3
文本1
文本2
文本3
希德尔();

jsiddle:

您可以通过添加内联样式来隐藏所有div:

<script type="text/javascript">
function show(elementId) { 
 document.getElementById("id1").style.display="none";
 document.getElementById("id2").style.display="none";
 document.getElementById("id3").style.display="none";
 document.getElementById(elementId).style.display="block";
}
</script>


<button type="button" onclick="show('id1');">Button 1</button>
<button type="button" onclick="show('id2');">Button 2</button>
<button type="button" onclick="show('id3');">Button 3</button>

<div id="id1"  style="display:none">text 1</div>
<div id="id2"  style="display:none">text 2</div>
<div id="id3"  style="display:none">text 3</div>

函数显示(elementId){
document.getElementById(“id1”).style.display=“无”;
document.getElementById(“id2”).style.display=“无”;
document.getElementById(“id3”).style.display=“无”;
document.getElementById(elementId).style.display=“block”;
}
按钮1
按钮2
按钮3
文本1
文本2
文本3

看到它在这里工作了吗:

您的代码很好。您只需要将
脚本
块放在其他所有内容之后

按钮1
按钮2
按钮3
文本1
文本2
文本3
功能显示(elementId){
document.getElementById(“id1”).style.display=“无”;
document.getElementById(“id2”).style.display=“无”;
document.getElementById(“id3”).style.display=“无”;
document.getElementById(elementId).style.display=“block”;
}

函数显示(elementId){
document.getElementById(“id1”).style.display=“无”;
document.getElementById(“id2”).style.display=“无”;
document.getElementById(“id3”).style.display=“无”;
document.getElementById(elementId).style.display=“block”;
}
div{
显示:无;
}
按钮1
按钮2
按钮3
文本1
文本2
文本3
所有的div都将在第一次运行时隐藏,您的代码将以这种方式工作,将按钮和div放在tag和tag下


以下是

我将同时使用CSS和JavaScript来实现这一点:

JavaScript

window.show = function(elementId) { 
    var elements = document.getElementsByTagName("div");
    for (var i = 0; i < elements.length; i++)
        elements[i].className = "hidden";

    document.getElementById(elementId).className = "";
}
HTML

<button type="button" onclick="show('id1');">Button 1</button>
<button type="button" onclick="show('id2');">Button 2</button>
<button type="button" onclick="show('id3');">Button 3</button>

<div id="id1">text 1</div>
<div id="id2" class="hidden">text 2</div>
<div id="id3" class="hidden">text 3</div>
按钮1
按钮2
按钮3
文本1
文本2
文本3

为什么不使用jQuery?@Nathan:为什么不使用Javascript?jQuery做这类事情会更好。这么简单的功能需要这么多开销?基于此信息,使用jQuery将是愚蠢的。:)点击后元素没有显示,这不是最初的显示,问题是在这种情况下问题需要更新。Topicstarter说:“我不能用接缝来隐藏div”。这就是为什么。效果非常好!谢谢
<script type="text/javascript">
function show(elementId) { 
 document.getElementById("id1").style.display="none";
 document.getElementById("id2").style.display="none";
 document.getElementById("id3").style.display="none";
 document.getElementById(elementId).style.display="block";
}
</script>
<style>
 div{
  display:none;
 }
</style>

<button type="button" onclick="show('id1');">Button 1</button>
<button type="button" onclick="show('id2');">Button 2</button>
<button type="button" onclick="show('id3');">Button 3</button>

<div id="id1">text 1</div>
<div id="id2">text 2</div>
<div id="id3">text 3</div>
window.show = function(elementId) { 
    var elements = document.getElementsByTagName("div");
    for (var i = 0; i < elements.length; i++)
        elements[i].className = "hidden";

    document.getElementById(elementId).className = "";
}
.hidden {
    display: none;
}
<button type="button" onclick="show('id1');">Button 1</button>
<button type="button" onclick="show('id2');">Button 2</button>
<button type="button" onclick="show('id3');">Button 3</button>

<div id="id1">text 1</div>
<div id="id2" class="hidden">text 2</div>
<div id="id3" class="hidden">text 3</div>