function sortByLastName(){ var someElement; try { someElement = document.getElementsByClassName("user"); someArray = [].slice.call(someElement); var reA = /[^a-zA-Z]/g; var reN = /[^0-9]/g; someArray.sort(function(a,b) { if((a.attributes['data-user'].nodeValue !== null) && (b.attributes['data-user'].nodeValue !== null)) { var smlla = a.attributes['data-user'].nodeValue.toLowerCase(); var smllb = b.attributes['data-user'].nodeValue.toLowerCase(); var aA = smlla.replace(reA, ""); var bA = smllb.replace(reA, ""); if(aA === bA) { var aN = parseInt(a.attributes['data-user'].nodeValue.replace(reN, ""), 10); var bN = parseInt(b.attributes['data-user'].nodeValue.replace(reN, ""), 10); return aN === bN ? 0 : aN < bN ? 1 : -1; } else { return aA < bA ? 1 : -1; } } else return 0; }); console.log(someArray.documentElement.innerHTML); console.log(someElement.documentElement.innerHTML); console.log(dummy); console.log(dummy); someElement.documentElement.innerHTML = someArray.documentElement.innerHTML; for (var i = 0, len = someArray.length; i < len; i++ ) { console.log(someArray[i].attributes); console.log(someArray[i].attributes.class); console.log(someArray[i].attributes['data-user']); someElement[0].nodeValue = someArray[0].nodeValue; document.getElementsByClassName("user")[0].nodeValue = someArray[0].nodeValue; console.log(document.getElementsByClassName("user")[0].nodeValue); console.log(someArray[0].nodeValue); } } catch(err) { console.log("Error occured"); console.log(err); } console.log(i); console.log("fuck"); console.log("fuckf"); };