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>
  <style> 
    td { width: 28px; height: 28px; background: white; border: 1px solid black; cursor: pointer;} 
    table { border-collapse: collapse; margin-right: -1px;}
    .btn { display: inline-block; width: 120px; margin-top: 20px; padding: 5px 0; border: 2px solid #dadada; border-radius: 5px; text-align: center; cursor: pointer;}
    .btn:hover {background: #f2e41f; border: #f5c;}
    .black { background: black; }
    .conversely td { background: black; }
    .conversely .black { background: white; }
  </style> 
</head>
<body>
  <div class="btn">Поменять цвета</div>
</body>
</html>
 
function hasClass(node, klass) {
  var classes = ' ' + node.className + ' ',
      regexp = new RegExp("\\s" + klass + "\\s");
  
  if ( classes.match(regexp) ) { 
    return true; 
  }
  
  return false;
}
function toggleClass(node, klass) {
  if ( !hasClass(node, klass) ) {
    var classes = node.className.split(' ');
  
    classes.push(klass);
    classes = classes.join(' ');
    node.className = classes;
    return node;
    
  } else {
    
    var classes = ' ' + node.className + ' ',
        regexp = new RegExp("\\s" + klass + "\\s", 'g');
    
    node.className = classes.replace(regexp, ' ').replace(regexp, ' ');
    return node;
    
  }
}
var body = document.getElementsByTagName('body')[0];
body.insertAdjacentHTML("afterBegin", "<table><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr></table>");
var table = body.firstChild;
var btn = body.getElementsByClassName('btn')[0];
table.addEventListener('click', function(event) {
  var target = event.target || event.srcElement;
  
  console.log(toggleClass(target, 'black').className);
});
btn.addEventListener('click', function(event) {
  console.log(toggleClass(table, 'conversely').className);
});
Output

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

Dismiss x
public
Bin info
anonymouspro
0viewers