是否可以在不循环遍历元素的情况下重置整个类

时间:2018-03-01 18:02:21

标签: css class reset

我有一个12个月的日历。当用户点击我正在调用我的函数toggleZoom的月份时     $ monthNode.onclick = function(){toggleZoom(this)};

目前我使用这个JS凸轮控制变焦:

function toggleZoom(month) {

var zoomed = window.getComputedStyle(month).zIndex;
var m = document.getElementsByClassName("month");

for(var i = 0; i < m.length; i++)
    {
     m[i].style ='' ;
    }

if (zoomed != 2) {
    month.style = 'transform:scale(1.1,1.1); z-index:2';
    }
}

是否有一种更干净的方式(可能是一行代码)将我所有的月份类重置为未缩放而不循环遍历所有12个?像document.getElementsByClassName(&#34; month&#34;).style =&#34;&#34;

1 个答案:

答案 0 :(得分:0)

您可以使用map()函数在一行中循环遍历数组而不创建for循环,如下所示:m.map(function(mo){ mo.style = ''; });

&#13;
&#13;
function toggleZoom(month) {

  var zoomed = window.getComputedStyle(month).zIndex;
  var m = document.getElementsByClassName("month");

  m.map(function(mo){ mo.style = ''; });

  if (zoomed != 2) {
    month.style = 'transform:scale(1.1,1.1); z-index:2';
  }
}
&#13;
&#13;
&#13;

或者,使用ES6's arrow function

&#13;
&#13;
function toggleZoom(month) {

  var zoomed = window.getComputedStyle(month).zIndex;
  var m = document.getElementsByClassName("month");

  m.map(mo => mo.style = '');

  if (zoomed != 2) {
    month.style = 'transform:scale(1.1,1.1); z-index:2';
  }
}
&#13;
&#13;
&#13;