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 に答える