cesarr,
вариант ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<style type="text/css">
#w,#z{background:#FF0;border:#000000 1px dashed;display:inline-block}
div>div{background:#00F;color:#000;width:60px;margin:8px;float:left;border:#000000 1px dashed}
div>div:last-child{background:#F00}
div>div:first-child{background:#FFD700}
</style>
</head>
<body>
<div id="w">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
<div id="z">
<div>4</div>
<div style="background-color: #00FF00">5</div>
<div>6</div>
</div>
<script>
var e = document.querySelectorAll("div");
Array.prototype.forEach.call(e, function (b) {
var d = 0,
c = window.getComputedStyle ? getComputedStyle(b, "") : b.currentStyle,
c = c.backgroundColor;
b.onclick = function (a) {
a = a || window.event;
a.stopPropagation ? a.stopPropagation() : a.cancelBubble = !0;
b.style.backgroundColor = (d ^= 1) ? "white" : c
}
});
</script>
</body>
</html>
если непрописывать стиль как в теге div=5 вычислять и хранить backgroundColor нет необходимости