Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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
可见性:在javascript中未正确检测到隐藏_Javascript_Css - Fatal编程技术网

可见性:在javascript中未正确检测到隐藏

可见性:在javascript中未正确检测到隐藏,javascript,css,Javascript,Css,在CSS中,将类的可见性属性设置为hidden,然后getElementsByClassName[i].style.visibility将不会将该类识别为hidden 只有在第二次执行onChange之后,css才会真正改变。第一个onChange调用无法识别css设置为可见性:hidden,而else应用“hidden”属性 为了证明这一点,当else替换为else if时,可见性将永远不会改变,因为它不会被视为可见或隐藏 但是,如果我使用style.visibility!=“隐藏”和st

CSS中,将类的可见性属性设置为hidden,然后getElementsByClassName[i].style.visibility将不会将该类识别为hidden

只有在第二次执行onChange之后,css才会真正改变。第一个onChange调用无法识别css设置为
可见性:hidden
,而else应用“hidden”属性

为了证明这一点,当else替换为else if时,可见性将永远不会改变,因为它不会被视为可见或隐藏

但是,如果我使用
style.visibility!=“隐藏”和style.visibility!=“可见”
代码将正常工作


有人能告诉我为什么会发生这种情况,以及我如何正确设置js读取的属性吗?

元素。style
将只返回内联样式,即在元素的
style=“…”
属性中定义的样式。
要获取计算样式,请使用:

var inline=document.getElementById('inline'),
computed=document.getElementById('computed'),
derp=document.querySelector('.derp');
document.getElementById('getval')。addEventListener('click',function()
{
inline.textContent=derp.style.visibility;
computed.textContent=getComputedStyle(derp).visibility;
})
document.getElementById('toggle')。addEventListener('click',function()
{
derp.style.visibility=getComputedStyle(derp).visibility==‘可见’?‘隐藏’:‘可见’;
})
.derp
{
能见度:可见;
背景:#CFC;
高度:50px;
}

内联值:
计算值:

获取可见性切换div可见性
。样式
仅影响内联样式。您正在寻找。这个答案可能对您有所帮助。强烈建议您在问题中包含必要的代码,而不是将其链接作为外部资源…另外,是否有特殊原因要将
包装到
中,而不仅仅使用
?@Siguza可以与GetElementsByCassName一起使用?我尝试使用它,当我使用var elem=document.getElementsByClassName(toggle_类)时,每个索引都显示为未定义;对于(var i=0;i