2017-06-29 51 views
0

所以我寫了這個clickDisplay函數,它顯示了點擊某些元素,它工作正常,是的,但顯然我需要一個功能,將隱藏所有其他元素,因爲他們應該要顯示在同一領域,所以現在他們種上海誓山盟 這個疊放就是我想出了,但八九不離十不工作,我不知道爲什麼javascript/htmlDOM顯示元素,同時隱藏其他

const pages = ['watch','chars','seasons','songs'] 

    function clickHide(element){ 
     document.getElementById(element).style.display = 'none'; 
    } 

    function clickDisplay(element){ 
     document.getElementById(element).style.display = 'block'; 
     for(let x = 0 ; x < pages.length ; x++){ 
      if (pages[x]!=element){clickHide(pages[x]);} 
     } 
    } 

回答

0

雖然這聽起來像你解決你自己的問題,我開始組建你的代碼貼過,所以我會把它放在這裏給你。 :)

const pages = ['watch', 'chars', 'seasons', 'songs'] 

function clickHide (el) { 
    pages.forEach((pel) => { 
    setElement(pel, pel === el ? 'none' : 'block') 
    }) 
} 

function setElement(el, attr) { 
    document.getElementById(el).style.display = attr 
} 

具有這樣的HTML:

onclick="clickHide('watch')" // or 'chars' 'seasons' or 'songs' 
+0

感謝,順便說一句,這是本應該在所有走近的方式? – coldman1

+0

這取決於誰在回答。有些人會說「是」,有些人會說「不」。我認爲這通常是標準,如果你使用香草js。 –

0

哦,等一下,我不知道爲什麼,但現在突然起作用了。我只是改變了佔位符文本,並刷新頁面

但我敢肯定,這仍然是個愚蠢的方案