【问题标题】:Toggle display on class not working在课堂上切换显示不起作用
【发布时间】:2015-01-12 19:03:41
【问题描述】:

我有用于将 div 的显示从无切换到阻塞的代码,它工作得很好,但后来我意识到需要它在多个 div 上。因此,我编辑了代码以关闭课程而不是 id,我从这个站点获得了代码方面的帮助,每个人都在说它是如何完美运行的,但它不适合我。

代码如下:

function toggleDisplay(class) {

    var display = document.getElementsByClassName(class);

    for(var i = 0; i < display.length; ++i) {

        var style = display[i].style;
        style.display = style.display === 'none' ? 'block' : 'none';
    }
}

toggleDisplay('display');

这是我在这里找到的确切代码,每个人都说它可以正常工作,只是类名等发生了变化。它不起作用。我做错了什么?

【问题讨论】:

  • 您需要为元素设置新样式。
  • 你有名为 display 的类吗?这就是您要发送给该功能的内容。 class是js中的保留字,在func参数和函数中叫toggleclass或者别的什么
  • 我确实有一个名为 display 的类。我已将班级更改为 className,但仍然无法正常工作。
  • 你说要单独作用于DIV,为什么要用类,用iddocument.getElementById()

标签: javascript html function class styles


【解决方案1】:

您的代码是正确的,但您将保留关键字 class 作为参数传递。请更改它,它会工作的

function toggleDisplay(className) {

  var display = document.getElementsByClassName(className);

  for(var i = 0; i < display.length; ++i) {

    var style = display[i].style;
    style.display = style.display === 'none' ? 'block' : 'none';
  }
}

toggleDisplay('display');
&lt;p class="display"&gt;A paragraph&lt;/p&gt;

【讨论】:

  • 我已经这样做了,但似乎没有什么不同。
  • @KevinPearseTohill 我启用了 sn-p,我发现它可以按您的意愿工作。
  • @KevinPearseTohill BTW,错误是&gt; SyntaxError: class is a reserved identifier
  • 我希望能够分别切换多个div的显示,而不是一键切换。
  • 那么,您应该为所有 DIV 设置一个唯一 ID。不是吗?
猜你喜欢
  • 2013-08-03
  • 2016-11-15
  • 1970-01-01
  • 2016-03-23
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
相关资源
最近更新 更多