JavaScript改变了双方的显示风格

时间:2015-04-07 07:33:20

标签: javascript html styles

我需要在两个div之间更改显示样式的无限时间。第一个变化是正常的,但向后变化不起作用。 另外,我不能使用链接到明确的div,因为我有几个相同的div。

<script type="text/javascript">
    function func(el){
      if (smth != true) {var smth = false;}
      if (smth == false) {
         el.firstElementChild.style.display = 'none';
      el.lastElementChild.style.display = 'block';
        smth = true;
      } else {
        el.firstElementChild.style.display = 'block';
      el.lastElementChild.style.display = 'none';
        smth = false;
      }
    }
</script>


<div onClick="func(this)">
  <div>1</div>
  <div style="display:none;">2</div>
</div>

1 个答案:

答案 0 :(得分:1)

在代码中,每次调用func()时都会取消定义smth,因为它不是全局变量。 要解决这个问题,只需将smth设为全局。

<script type="text/javascript">
var smth = false;

function func(el){
  if (smth == false) {
     el.firstElementChild.style.display = 'none';
  el.lastElementChild.style.display = 'block';
    smth = true;
  } else {
    el.firstElementChild.style.display = 'block';
  el.lastElementChild.style.display = 'none';
    smth = false;
  }
}
</script>


<div onClick="func(this)">
  <div>1</div>
  <div style="display:none;">2</div>
</div>