隐藏divs vanilla javascript的动态方式

fro*_*mad 3 html javascript css string object

是否有更动态的方式来隐藏/显示结构相同且没有标识符的 div?点击显示我是一些东西

<div class="setup" onclick="show(1)">
Click to show
  <p class="hidden">
    I'm more stuff
  </p>
</div>


function show(elem) {   
  var p = document.getElementsByClassName("hidden");
  if (p[elem] != undefined) {
    if (p[elem].style.display == "none") {
        p[elem].style.display = "block";
    } else {
      p[elem].style.display = "none";
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/ba7yfmz6/29/

Jac*_*ord 6

使用this

<div class="setup" onclick="show(this)">
Run Code Online (Sandbox Code Playgroud)

JavaScript:

function show(elem) {
    var paragraph = elem.querySelector(".hidden");
    if (paragraph.style.display == "none") {
        paragraph.style.display = "block";
    } else {
        paragraph.style.display = "none";
}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助!

  • @froggomad 请注意,当您处理非块元素时,这会给您带来麻烦。我个人会使用“隐藏”类,并定义特定元素应如何隐藏在 css 中。 (2认同)