2011-04-01 196 views
22

我想隱藏這個使用javascript裏面的警告div。Javascript onclick隱藏div

我是我越來越JavaScript的權利?我想隱藏/關閉div時我如果你想關閉它,你可以隱藏或將其從頁面刪除它的關閉圖標點擊(圖片/ close_icon.gif)

<div> 
    <strong>Warning:</strong> 
    These are new products 
    <a href='#' class='close_notification' title='Click to Close'> 
    <img src="images/close_icon.gif" width="6" height="6" alt="Close" onClick="this.close" /> 
    </a 
</div> 
+0

完整的父母你使用像jQuery或生的JavaScript庫? – alexl 2011-04-01 15:36:24

回答

41

。要隱藏它,你會做一些類似的JavaScript:

this.parentNode.style.display = 'none'; 

要刪除它,你使用removeChild

this.parentNode.parentNode.removeChild(this.parentNode); 

如果你有像jQuery庫包含的則隱藏或移除DIV會稍微容易:

$(this).parent().hide(); 
$(this).parent().remove(); 

另外一件事,因爲你的img處於錨點,錨點上的onclick事件也將觸發。由於href設置爲#,頁面將滾動回頁面的頂部。一般來說這是很好的做法,如果你想有一個環節做的比去其href其他東西,你應該設置onclick事件return false;

+0

+1,但他在'img'上有'onclick',而不是'a',所以這將是'this.parentNode.parentNode.style.display ='none';'和類似的'this.parentNode。 parentNode.parentNode.removeChild(this.parentNode.parentNode);'。除非你推薦移動它。 :-) – 2011-04-01 15:57:03

+0

公平點,我在編輯之前誤讀了這個問題。無論如何,如果這個事件仍然在主播上,那會更好。 – 2011-04-01 15:59:44

+0

同意,這也是我的建議。 – 2011-04-01 16:01:58

5

只需添加onclick處理錨標籤

onclick="this.parentNode.style.display = 'none'" 

或更改onclick處理程序爲img標籤

onclick="this.parentNode.parentNode.style.display = 'none'" 
11

HTML

<div id='hideme'><strong>Warning:</strong>These are new products<a href='#' class='close_notification' title='Click to Close'><img src="images/close_icon.gif" width="6" height="6" alt="Close" onClick="hide('hideme')" /></a 

的Javascript:

function hide(obj) { 

    var el = document.getElementById(obj); 

     el.style.display = 'none'; 

} 
+0

謝謝朋友。這也工作。 – karto 2011-04-02 17:59:14

+0

嗨,克里斯。謝謝你。我有一個查詢,有沒有什麼辦法可以給它添加一個「過渡效果」?通過轉換,我的意思是,'hideme'div將以2秒的線性樣式關閉,就像那樣。再次感謝! – 2013-04-02 10:18:52

+1

當然,你可以設置元素溢出:使用JavaScript隱藏,然後使用超時或setinterval,然後可以減少div的高度,直到它達到0.然而,使用JQuery .animate()這個效果會更容易。 – 2013-06-12 18:29:25

14

簡單&最好的辦法:

onclick="parentNode.remove()" 

刪除從HTML