UNPKG

tui-code-snippet

Version:
54 lines (42 loc) 1.09 kB
/** * @fileoverview Add css class to element * @author NHN FE Development Lab <dl_javascript@nhn.com> */ 'use strict'; var forEach = require('../collection/forEach'); var inArray = require('../array/inArray'); var getClass = require('./getClass'); var setClassName = require('./_setClassName'); /** * domUtil module * @module domUtil */ /** * Add css class to element * @param {(HTMLElement|SVGElement)} element - target element * @param {...string} cssClass - css classes to add * @memberof module:domUtil */ function addClass(element) { var cssClass = Array.prototype.slice.call(arguments, 1); var classList = element.classList; var newClass = []; var origin; if (classList) { forEach(cssClass, function(name) { element.classList.add(name); }); return; } origin = getClass(element); if (origin) { cssClass = [].concat(origin.split(/\s+/), cssClass); } forEach(cssClass, function(cls) { if (inArray(cls, newClass) < 0) { newClass.push(cls); } }); setClassName(element, newClass); } module.exports = addClass;