2013-02-06 95 views
0

我正在處理隱藏和顯示具有不同內容的div。當我點擊一個鏈接時,我想要顯示一個div。但是當我點擊另一個鏈接時,我希望新內容替換以前的內容。現在,它屬於它而不是取而代之。任何解決方案替換舊內容的新內容隱藏並顯示

的Javascript

function show(){ 

var links = { 
link1: "content1", 
link2: "content2", 
link3: "content3", 
link4: "content4" 
}; 

var id = event.target.id; 
var a = document.getElementsByTagName("a"); 
document.getElementById(links[id]).style.visibility = 'visible'; 
} 

function init(){ 

var divs = document.getElementsByTagName("div"); 
for (i = 0; i < divs.length; i++) { 
    if (divs[i].className == "div") { 
     divs[i].style.visibility = 'hidden'; 
    } 
} 
var a = document.getElementsByTagName("a"); 
for(i = 0; i < a.length; i++){ 
    a[i].onclick = show; 
} 
} 

window.onload = init; 

回答

1

你需要運行的代碼隱藏它們無不顯示你想要的,每一次之前的程序。

使此:

function hideAll() { 
    var divs = document.getElementsByTagName("div"); 
    for (i = 0; i < divs.length; i++) { 
     if (divs[i].className == "div") { 
      divs[i].style.visibility = 'hidden'; 
     } 
} 

init()中刪除此代碼,並用調用替換它hideAll()並在show()年初增加hideAll()通話。

+0

內容應該從一開始就看不見,因此將代碼放在hideAll中並調用它將不會這樣做。 – DrWooolie

+0

我實現了你的hideAll,並將代碼保存在init中。它的工作。當我點擊一個新的鏈接時,會顯示一個新的內容。然而,它並不代表之前的內容,它屬於它。雖然之前的內容被隱藏起來,但它仍然沒有取代它 – DrWooolie

+0

不使用可見性:可見/隱藏,使用display:none/block –