代码之家  ›  专栏  ›  技术社区  ›  brooksrelyt Ozal Zarbaliyev

在添加相同类名的同时减少元素的重复

  •  0
  • brooksrelyt Ozal Zarbaliyev  · 技术社区  · 4 年前

    有没有更简单的方法来减少类I的次数?

    if (display.hasAttribute("homepage-events")) {
      startDate.classList.add('h6');
      endDate.classList.add('h6');
      startTime.classList.add('h6');
      endTime.classList.add('h6');
      dateContainer.classList.add('mb-2');
      timeContainer.classList.add('mb-2');
    
      title.classList.add('h5');
      location.classList.add('h6');
      
      item.classList.add('no-pad-top');
      columnLeft.classList.remove('col-md-3');
      columnRight.classList.remove('col-md-9');
      columnLeft.classList.add('col-md-12');
      columnRight.classList.add('col-md-12');
    }
    

    这些可以用香草js组合吗?

    startDate.classList.add('h6');
    endDate.classList.add('h6');
    startTime.classList.add('h6');
    endTime.classList.add('h6');
    
    2 回复  |  直到 4 年前
        1
  •  3
  •   JLRishe    4 年前

    您可以编写一个简单的helper函数:

    function addClass(className, elements) {
        elements.forEach(function (element) {
            element.classList.add(className); 
        });
    }
    

    然后使用它:

    addClass('h6', [startDate, endDate, startTime, endTime]);
    

    如果能够针对较新的语法,可以编写如下helper函数:

    function addClass(className, elements) {
        for (let element of elements) {
            element.classList.add(className);
        }
    }
    
        2
  •  1
  •   Dhruvi Makvana    4 年前

    您可以将它们组合在一个数组中并运行一个循环。

    var h6Elements = [startDate, endDate, startTime, endTime]
    
    h6Elements.forEach( e => e.classList.add('h6'))