2014-02-12 108 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