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;
4

1 回答 1

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()添加调用。hideAll()show()

于 2013-02-06T21:15:28.830 回答