javascript / htmlDOM显示元素,同时隐藏其他元素

时间:2017-06-29 14:05:03

标签: javascript simple-html-dom

所以我写了这个clickDisplay函数,在click上显示某些元素,它工作正常,是的,但显然我需要一个隐藏所有其他元素的功能,因为它们应该显示在同一个字段中,所以现在他们有点堆叠在彼此之上 这就是我提出的,但它有点不起作用,我不知道为什么

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]);}
        }
    }

2 个答案:

答案 0 :(得分:0)

等等,我不知道为什么,但现在这突然起作用了。我只更改了占位符文本并刷新了页面

但我确信这仍然是一个愚蠢的解决方案

答案 1 :(得分: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'