Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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 如何使用按钮onclick隐藏一个div并显示另一个div?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何使用按钮onclick隐藏一个div并显示另一个div?

Javascript 如何使用按钮onclick隐藏一个div并显示另一个div?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的html文件中有两个div。我想隐藏第一个div并在html输入按钮上显示另一个divonclickevent 这是我的密码 函数开关可见(){ if(document.getElementById('Div1')!==未定义){ if(document.getElementById('Div1').style.display=='Block'){ document.getElementById('Div1').style.display='none'; document.getEleme

我的html文件中有两个div。我想隐藏第一个div并在html输入按钮上显示另一个div
onclick
event

这是我的密码

函数开关可见(){
if(document.getElementById('Div1')!==未定义){
if(document.getElementById('Div1').style.display=='Block'){
document.getElementById('Div1').style.display='none';
document.getElementById('Div2').style.display='Block';
}否则{
document.getElementById('Div1').style.display='Block';
document.getElementById('Div2').style.display='none';
}
}
}
#Div2{
显示:无;
}
试试这个:

var div1=document.getElementById('div1'),
div2=document.getElementById('div2');
函数switchVisible(){
如果(!div1)返回;
if(getComputedStyle(div1.display=='block'){
div1.style.display='none';
div2.style.display='block';
}否则{
div1.style.display='block';
div2.style.display='none';
}
}
document.getElementById('Button1')。addEventListener('click',switchVisible)
#Div2{
显示:无;
}
div1
第2组

由于它带有jQuery标记,下面是简单的jQuery答案

$('body').on("click touchstart", "#Button1", function(e){
   $("#Div1, #Div2").toggle();
});
使用on来监听id#按钮,我使用了click和touchstart使其便于移动,然后使用toggle()将显示状态设置为与现在相反的状态。因此,如果它是display:none,那么它将变成display:block,如果它是display:block,那么它将变成display:none(在onclick内部),您不必使用“javascript:”,这意味着

2) 您检查“display:block”,我总是检查“display:none”(因为显示也可以是“inline block”,等等)

试试这个:
函数开关可见(){
if(document.getElementById('Div1')){
if(document.getElementById('Div1').style.display=='none'){
document.getElementById('Div1').style.display='block';
document.getElementById('Div2').style.display='none';
}
否则{
document.getElementById('Div1').style.display='none';
document.getElementById('Div2').style.display='block';
}
}
}
#Div2{
显示:无;
}
div1
第2组

您的代码中可能有一些语法错误。这一个正在工作:

函数开关可见(){
if(document.getElementById('Div1')!==未定义){
if(document.getElementById('Div1').style.display=='block'){
document.getElementById('Div1').style.display='none';
document.getElementById('Div2').style.display='block';
}否则{
document.getElementById('Div1').style.display='block';
document.getElementById('Div2').style.display='none';
}
}
}
#第1部分{
显示:无;
}
#第一组{
背景:红色;
}
#第二组{
背景:绿色;
}
#第1部分,第2部分{
宽度:50px;
高度:50px;
}

不要通过html添加单击事件。添加一个事件侦听器,如
document.getElementById(“Button1”)。addEventListener(“单击”,开关可见,假)


请参阅此处的工作JSFIDLE:

您可能想试试这个

函数开关可见(){
var div1=document.getElementById('div1');
var div2=document.getElementById('div2');
if(div1!==未定义和&div2!==未定义){
div1.style.display=div2.style.display==“无”:div2.style.display==“无”?“无”:“块”;
div2.style.display=div1.style.display=='block'?'none':'block';
}
}
#第1部分{
显示:块;
背景:蓝色;
}
#第二组{
显示:无;
背景:红色;
}
.分区
{
宽度:50px;
高度:50px;
边框:1px实心#000;
}


2件事,将“Block”更改为“Block”,并确保您的div ID是正确的,区分大小写。另外,从onclick中删除javascript:既然您在帖子中添加了jQuery标记,为什么不使用
$('#Div1').hide()$(#Div2').show()
和jQuery标记了它,但是用户显然在使用纯JS。当其他人已经使用纯JS时,回答相同的结果似乎没有任何意义。没有重复的努力。我只是看看OP(这个等式中重要的一个)要求什么。实际上,他只是有一个拼写错误,拼写“Block”而不是“Block”。很抱歉,你对一个问题的限定性答案感到不满。事实上,我更支持你的答案。我只是说是的,他在不应该的时候将它标记为jQuery。我会投票给你,让你知道我是真诚的。:)@子组合子AndyKillen比子组合子快。因此,我不会删除它只是为了保存一个字节。请给我一个链接,它详细说明了这是更快。在这种情况下,它没有逻辑意义。@AndyKillen
#wrapper.switched:first child
首先获取所有
:first child
元素,然后检查每个元素是否有
#wrapper.switched
祖先<代码>#wrapper.switched>:第一个子项只检查每个子项的父项。当然,只检查父项要比检查所有祖先更快。啊,现在我明白了你的推理,你认为div中会嵌套一大堆元素,我想它只是某种背景图像或其他同样不复杂的东西。感谢您的回复。如何在切换divs时添加转换?与JS更改“style.display”不同,您可以让它更改/切换/切换某些类名。在CSS中,您可以将转换添加到这些。或者,您可以使用jQuery的animate()函数来执行此操作。看看他们的文件