<pre>
<code>$('.red').compare($('.green')) = <span id='result'></span></code>
</pre>
<div id="demo-html" style="margin: 0;">
<div>
A
<div>A.1</div>
<div>A.2</div>
</div>
<div>
B
</div>
</div>
<table>
<tr><th>Bitmask</th><th>Number</th><th>Meaning</th></tr>
<tr class="no_0"><td>000000</td><td>0</td><td>.red and .green are identical</td></tr>
<tr class="no_1"><td>000001</td><td>1</td><td>The nodes are in different documents (or one is outside of a document)</td></tr>
<tr class="no_2"><td>000010</td><td>2</td><td>.green precedes .red</td></tr>
<tr class="no_4"><td>000100</td><td>4</td><td>.red precedes .green</td></tr>
<tr class="no_8"><td>001000</td><td>8</td><td>.green contains .red</td></tr>
<tr class="no_16"><td>010000</td><td>16</td><td>.red contains .green</td></tr>
</table>
var tableNumbers = [0, 1, 2, 4, 8, 16],
placing = 'red';
$('div').click(function(ev){
$('.'+placing).removeClass(placing)
$(this).addClass(placing)
placing = placing == 'red' ? 'green' : 'red';
ev.stopPropagation();
if($('.green').length){
var result = $('.red').compare($('.green'))
$("#result").text(result);
$('tr.matches').removeClass('matches');
$.each(tableNumbers, function(i, value) {
if(result & value || result === value) {
$('tr.no_' + value).addClass('matches');
}
});
}
})
$(function(){
if(window.parent == window){
$('.hide').show()
}
})
body {
font-family: verdana;
}
div {
border: solid 1px black;
margin: 5px;
padding: 5px;
font-size: 12px;
}
pre {
margin-bottom: 10px;
}
.red {
background-color: red;
}
.green {
background-color: green;
}
.hide {
display: none;
}
h3 {
margin: 20px 0px 0px 0px;
}
table {
margin-top: 20px;
border-collapse: collapse;
}
th, td {
border: 1px solid gray;
padding: 5px;
}
th {
color: gray;
text-align: left;
}
.matches {
background-color: yellow;
}