Javascript 首先,单击两次以切换打开隐藏元素,然后单击一次

Javascript 首先,单击两次以切换打开隐藏元素,然后单击一次,javascript,html,css,Javascript,Html,Css,我有一个简单的测试html文件: <!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style type="text/css"> .faqs { visibility: hidden; } .q { col

我有一个简单的测试html文件:

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
  .faqs { visibility: hidden; }
  .q { color:blue; }
</style>
<script type="text/javascript">
function toggleElement(id)
{
    if(document.getElementById(id).style.visibility== 'hidden')
        { document.getElementById(id).style.visibility = 'visible'; }
    else
        { document.getElementById(id).style.visibility = 'hidden'; }
}   
</script>
</head>
<body>

<p class="q"><a onclick="toggleElement('1');">toggle 1.</a></p>
<div class="faqs" id="1">
<p>Answer 1.</p>
</div>

<p class="q"><a onclick="toggleElement('2');">toggle 2.</a></p>
<div class="faqs" id="2">
<p>Answer 2.</p>

</body>
</html>

.FAQ{可见性:隐藏;}
.q{颜色:蓝色;}
函数切换元素(id)
{
if(document.getElementById(id.style.visibility=='hidden')
{document.getElementById(id).style.visibility='visible';}
其他的
{document.getElementById(id).style.visibility='hidden';}
}   
没有人回答

-TYVM

此检查:

if(document.getElementById(id).style.visibility== 'hidden'){...}
由于
style.visibility
没有内联样式,因此无法工作,因此第一次将值设置为
hidden
,第二次设置为ok,现在可以工作了

要解决此问题,最简单的方法是向元素添加内联样式,如:

<div class="faqs" id="1" style="visibility:hidden;"></div>
此支票:

if(document.getElementById(id).style.visibility== 'hidden'){...}
由于
style.visibility
没有内联样式,因此无法工作,因此第一次将值设置为
hidden
,第二次设置为ok,现在可以工作了

要解决此问题,最简单的方法是向元素添加内联样式,如:

<div class="faqs" id="1" style="visibility:hidden;"></div>
此支票:

if(document.getElementById(id).style.visibility== 'hidden'){...}
由于
style.visibility
没有内联样式,因此无法工作,因此第一次将值设置为
hidden
,第二次设置为ok,现在可以工作了

要解决此问题,最简单的方法是向元素添加内联样式,如:

<div class="faqs" id="1" style="visibility:hidden;"></div>
此支票:

if(document.getElementById(id).style.visibility== 'hidden'){...}
由于
style.visibility
没有内联样式,因此无法工作,因此第一次将值设置为
hidden
,第二次设置为ok,现在可以工作了

要解决此问题,最简单的方法是向元素添加内联样式,如:

<div class="faqs" id="1" style="visibility:hidden;"></div>
您可以尝试以下方法:

function toggleElement(id)
{
    var element      = document.getElementById(id);
    var elementStyle = window.getComputedStyle(element);
    element.style.visibility = (elementStyle.visibility == 'hidden') ? 'visible' : 'hidden';
}
最初,元素没有任何可见性样式。要使其正常工作,可以使用上面的getComputedStyle函数

您可以尝试以下方法:

function toggleElement(id)
{
    var element      = document.getElementById(id);
    var elementStyle = window.getComputedStyle(element);
    element.style.visibility = (elementStyle.visibility == 'hidden') ? 'visible' : 'hidden';
}
最初,元素没有任何可见性样式。要使其正常工作,可以使用上面的getComputedStyle函数

您可以尝试以下方法:

function toggleElement(id)
{
    var element      = document.getElementById(id);
    var elementStyle = window.getComputedStyle(element);
    element.style.visibility = (elementStyle.visibility == 'hidden') ? 'visible' : 'hidden';
}
最初,元素没有任何可见性样式。要使其正常工作,可以使用上面的getComputedStyle函数

您可以尝试以下方法:

function toggleElement(id)
{
    var element      = document.getElementById(id);
    var elementStyle = window.getComputedStyle(element);
    element.style.visibility = (elementStyle.visibility == 'hidden') ? 'visible' : 'hidden';
}

最初,元素没有任何可见性样式。要使其正常工作,可以使用上面的getComputedStyle函数

当我替换显示:无和显示:块时,p.s.的结果相同。替换display:none和display:block.p.s时的结果相同。替换display:none和display:block.p.s时的结果相同。当我替换display:none和display:block时,结果是一样的。或者只切换到类并检查类名。或者只切换到类并检查类名。或者只切换到类并检查类名。或者只切换到类并检查类名。