Skip to content

Instantly share code, notes, and snippets.

@AugustMiller
Last active January 20, 2017 19:50
Show Gist options
  • Save AugustMiller/1978effb887d07900227377a1f07b15b to your computer and use it in GitHub Desktop.
Save AugustMiller/1978effb887d07900227377a1f07b15b to your computer and use it in GitHub Desktop.
SVG Classname Utility
getClass = (el) ->
if el.hasAttribute 'class'
el.getAttribute('class').split ' '
else
[]
hasClass = (el, className) ->
-1 < getClass(el).indexOf className
addClass = (el, className) ->
unless hasClass el, className
classList = getClass(el)
classList.push(className)
el.setAttribute 'class', classList.join(' ')
removeClass = (el, className) ->
# This currently only removes one instance of the classname.
if hasClass(el, className)
classList = getClass(el, className)
classList.splice(classList.indexOf(className), 1)
el.setAttribute 'class', classList
toggleClass = (el, className) ->
if hasClass el, className
removeClass el, className
else
addClass el, className
module.exports =
get: getClass
has: hasClass
add: addClass
remove: removeClass
toggle: toggleClass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment