2014-02-12 173 views
0

Ruby on Rails 3.我试图得到一个按钮来显示或隐藏div。Javascript显示/隐藏div的渲染

这不会返回任何错误,但没有任何反应。

<input type=button value="Show Archived Postings" onclick="showHide('oldNews');"> 

<div id="oldNews"> 
<%= render 'archive_news' %> 
</div> 

<script language="javascript" type="text/javascript"> 
function showHide(elementId) { 
    if (document.getElementById) { 
     var element = document.getElementById(elementId); 
     if (element.style.visibility == 'visible') { 
      element.style.visibility = 'hidden'; 
     } else if (element.style.visibility == 'hidden') { 
      element.style.visibility = 'visible'; 
     } 
    } 
} 
</script> 

它将始终呈现我的'archive_news'。我究竟做错了什么?谢谢

+0

将警报或console.log和调试。 –

+0

而不是可见性,请尝试.display =“none” –

+0

@ aw04这是测试以查看浏览器是否支持getElementById。编辑:......除非你支持[早于IE 5.5](https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById#Browser_Compatibility),否则这是不必要的。你可怜的东西。 – acbabis

回答

1

您可以根据您的要求使用此代码。当您点击按钮时,您可以使用style属性来隐藏和显示元素。

//this would hide when body is loaded 
var element = document.getElementById('oldNews'); 
if(element != null){ 
    element.style.display = 'none'; 
} 

//this would hide when you click on input button 
function showHide(elementId) { 
    var element = document.getElementById(elementId); 
    if (element != null) { 
     if(element.style.display != 'none'){ 
      element.style.display = 'none'; 
     }else{ 
      element.style.display = 'block'; 
     } 
    } 
} 
+0

最初加载时我会如何让div .display ='none'? – DDDD

+0

当页面加载时,你想让div'display' none? –

+0

是的,我会将Archived News Postings开始隐形,然后单击以显示并隐藏。 – DDDD