/**
|
* @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;
|