jQuery Sort DOM elements
Change class name on click in jQuery
by Ben Clayton
HTML
<div id="banner-message">
<div>
XXXXX
</div>
<div style="left:19px">
19
</div>
<div style="left:120px">
120
</div>
<div style="left:110px">
110
</div>
<div style="left:140px">
140
</div>
<div>
ZZZZZ
</div>
</div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
}
#banner-message.alt {
background: #0084ff;
color: #fff;
margin-top: 40px;
width: 200px;
}
#banner-message.alt button {
background: #fff;
color: #000;
}
JavaScript
// find elements
var $msgList = $("#banner-message").children();
$msgList.sort(function(a, b) {
var sorta = parseInt($(a).css('left'));
var sortb = parseInt($(b).css('left'));
if(isNaN(sorta)) return 1;
if(isNaN(sortb)) return -1;
if (sorta > sortb) return 1;
if (sorta < sortb) return -1;
return 0;
});
$msgList.detach().appendTo("#banner-message");