簡體   English   中英

你如何在Javascript中切換html元素的可見性?

[英]How do you toggle the visibility of an html element in Javascript?

我想知道是否有人能弄清楚為什么我的功能無法正常工作。 我想要實現的是當點擊一個按鈕時它會顯示文本,當它再次被點擊時它會隱藏它,依此類推。

function hideshow (){
    var showhide=document.getElementById('text');
    if(showhide.style.display="none")
    {
        showhide.style.display="block";
    }
    else{
        showhide.style.display="none";
    }
}

到目前為止,當我點擊它時,我得到了它來顯示我的文本,但是一旦我再次點擊它,它對文本沒有影響。

我認為應該是:

function hideshow (){
    var showhide = document.getElementById('text');
    if (showhide.style.display == "none")
    {
        showhide.style.display = "block";
    }
    else{
        showhide.style.display = "none";
    }
}

因此,在比較時使用'=='而不是'='。 '='運算符賦值。 在javascript中還有'==='運算符。 區別在於'=='將投射值,而'==='將嚴格比較。

例如:

0 == false; // will return true
0 === false; // will not

所以你也可以使用

if (showhide.style.display === "none")

您可以在此處詳細了解運營商。

你應該在你的if語句中使用=== =是賦值運算符:

function hideshow (){
    var showhide=document.getElementById('text');
    if(showhide.style.display==="none")
    {
        showhide.style.display="block";
    }
    else{
        showhide.style.display="none";
    }
}

要么:

function hideshow (){
    var showhide=document.getElementById('text');

    showhide.style.display = showhide.style.display === "none" ? 
        "block" : 
        "none";  
}

您應該使用比較==運算符,而不是使用=運算符分配值。

嘗試:

function hideshow() {
    var showhide = document.getElementById('text').style;
    (showhide.display = showhide.display == "none" ?  "block" : "none" )
}

您可以使用以下命令在一個語句中分配和比較

(showhide.display = showhide.display == "none" ?  "block" : "none" )
                  ^assign            ^comparison

演示: http//jsfiddle.net/7Eaf2/

function hideShow() {
    el.style.display != "none" ? "none" : "block";
}
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
        function hideshow() {
            var showhide=document.getElementById('text');
            if(showhide.style.visibility=="hidden")
            {
                showhide.style.visibility="visible";
            }
            else{
                showhide.style.visibility="hidden";
            }
        }
    </script>
</head>
<body>
    <div id="text">Text</div>
    <button onclick="hideshow()">hideshow</button>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM