Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
function createNode(name, klasses) {  
    var n = document.createElement(name);
    n.className = klasses;
    return n;
}
function hasClass(node, klass) {
  var classes = ' ' + node.className + ' ',
      regexp = new RegExp("\\s" + klass + "\\s");
  
  if ( classes.match(regexp) ) { 
    return true; 
  }
  
  return false;
}
function addClass(node, klass) {
  if ( !hasClass(node, klass) ) {
    var classes = node.className.split(' ');
  
    classes.push(klass);
    classes = classes.join(' ');
    node.className = classes;
  }
  
  return node;
}
function removeClass(node, klass) {
  if ( hasClass(node, klass) ) {
    var classes = ' ' + node.className + ' ',
        regexp = new RegExp("\\s" + klass + "\\s", 'g');
    
    node.className = classes.replace(regexp, ' ').replace(regexp, ' ');
  }
  
  return node;
}
function l(x) {
    console.log(x);
}
l(hasClass(createNode('div', 'test'), 'test')); // true
l(hasClass(createNode('div', 'test'), 'tes')); // false
l(hasClass(createNode('div', 'test1 test2'), 'tes')); // false
l(hasClass(createNode('div', 'test1 test2'), 'test1')); // true
l(hasClass(addClass(createNode('div', 'test test2'), 'tes'), 'tes')); 
var node = addClass(createNode('div', 'test test2'), 'tes');
console.log(node.getAttribute('class'));
node = removeClass(createNode('div', 'test1 test2'), 'test1'); 
console.log(node.getAttribute('class'));
var testDelete = createNode('div', 'a b b b c');
removeClass(testDelete, 'b');
l(testDelete.className);
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers