1

通过使用此方法,我可以使用 2 个按钮显示/隐藏元素:

<script type="text/javascript">
function showStuff(id) {
        document.getElementById(id).style.display = 'block';
}
function hideStuff(id) {
    document.getElementById(id).style.display = 'none';
}
</script>

<input type="button" onClick="hideStuff('themes')" value="Hide">
<input type="button" onClick="showStuff('themes')" value="Show">
<div id="themes" style="display:block">
    <h3>Stuff</h3>
</div>

有没有使用单个按钮的方法?也许如果&否则?

4

4 回答 4

4

您已经回答了您的问题...使用if/ else

function toggle(id) {
    var element = document.getElementById(id);

    if (element) {
        var display = element.style.display;

        if (display == "none") {
            element.style.display = "block";
        } else {
            element.style.display = "none";
        }
    }
}

这不会是完全万无一失的,以防您隐藏/显示inlineinline-block元素,或者如果您对元素使用非默认值display......例如将 div 设置display为“内联”(无论出于何种原因)然后尝试使用此功能

于 2012-12-17T19:51:04.550 回答
0

是的,如果/否则会起作用

function toggle(id){
    var elem = document.getElementById(id);
    if(elem.style.display == 'block'){
        elem.style.display == 'none'
    } else if(elem.style.display == 'none'){
        elem.style.display == 'block'
    }
}
于 2012-12-17T19:50:52.210 回答
0

我想你的意思是这样的:

 function toggle(id){
var elem = document.getElementById(id);
if(elem.style.display == "block"){
    elem.style.display="none";
} else {
    elem.style.display="block";
}

}

于 2014-01-15T09:44:29.070 回答
0

这是一个替代解决方案。除了使用document.getElementById,您还可以使用document.querySelectorwhich 返回文档中与指定选择器或选择器组匹配的第一个元素。

解决方案代码:

function toggleShow() {
    var elem = document.querySelector(id);
    if(elem.style.display == 'inline-block'){
      elem.style.display="none";
    }
    else {
      elem.style.display = "inline-block";
    }
  }
于 2018-04-14T20:53:29.073 回答