显示div onclick不工作(Javascript)

显示div onclick不工作(Javascript),javascript,Javascript,这里是Javascript新手。任何人都可以让我知道我的代码有什么问题吗?要显示的div在单击后不显示,我不明白为什么 let div=document.getElementById('div-to-show'); 函数openDiv(){ 如果(div.style.display=='none'){ div.style.display='block'; } } #要显示的div{ 显示:无; } 集团 我看得见 这里有两个问题 首先,您不是使用onclick=“openDiv”调用函数-您必

这里是Javascript新手。任何人都可以让我知道我的代码有什么问题吗?要显示的div在单击后不显示,我不明白为什么

let div=document.getElementById('div-to-show');
函数openDiv(){
如果(div.style.display=='none'){
div.style.display='block';
}
}
#要显示的div{
显示:无;
}
集团

我看得见


这里有两个问题

首先,您不是使用
onclick=“openDiv”
调用函数-您必须将
()
放在函数名之后才能调用它,例如
onclick=“openDiv()”

其次,尽管您有一个CSS规则
display:none
,但这不会导致元素本身的CSS属性发生变化;它仍然是空字符串:

let div=document.getElementById('div-to-show');
函数openDiv(){
console.log(div.style.display);
}
#要显示的div{
显示:无;
}
集团

我看得见

  • 您应该在单击时正确地提到函数名
    onclick=openDiv
    应替换为
    onclick=openDiv()
  • 您应该直接在标记上定义
    display
    css样式,以在javascript上获得
    div.style.display
    document.getElementById(“…”).style
    将只包含在html标记
    style
    属性上定义的样式属性。仅为了进行比较,需要在html文件上直接设置
    display
    属性
  • let div=document.getElementById('div-to-show');
    函数openDiv(){
    如果(div.style.display=='none'){
    div.style.display='block';
    }
    }
    集团

    我看得见

    
    #节目组{
    显示:无;
    }
    集团

    我看得见

    让div=document.getElementById('div-to-show'); 函数openDiv(){ if(window.getComputedStyle(div.display=='none'){ div.style.display='block'; } }
    在您的代码中写入onclick的方式是错误的
    ,您需要以以下方式写入onclick:

    <p onclick="openDiv()">Clique</p>
    
    集团


    然后再试一次。

    您好,正如这里的一些其他示例所解释的,您应该使用addEvenlListener。如果只需要单击事件上显示div的内容,则不需要If语句。您可以向div添加一个类来设置display:none。然后在代码中,您只需要在div的类列表上调用remove。如果该类不在类列表中,这将不会抛出错误或执行任何操作。因此,不需要实现任何检查逻辑

    使用hidden类可以使您不需要知道div元素最初的显示值。不用担心

    let div=document.getElementById('div-to-show'))
    document.getElementById('p按钮')。addEventListener(“单击”,openDiv);
    函数openDiv(){
    div.classList.remove('hidden');
    }
    #div-to-show.hidden{
    显示:无;
    }
    集团

    我看得见


    应该是
    onclick=“openDiv()”
    。但是你应该考虑使用JavaScript代替,使用<代码>让p=文档.QuestS选择器(‘P’);p、 addEventListener(“单击”,openDiv)。谢谢,为什么使用EventListener更好?这是关于关注点分离的。HTML提供了文档的结构;文本的含义和相对重要性。JavaScript提供了行为;当用户与文档交互时会发生什么。CSS提供了文档的外观;元素对用户的显示方式。我认为这是更好的方式,它也适用于内联样式
    如果要使用
    getComputedStyle
    ,应该缓存结果,因为它是一个活动的
    csssStyleDeclaration
    对象,所以不必每次单击都运行该函数。还有。。。