JSFiddle - React, Tailwind, and code Playground

JavaScript

source = $("<root><item desc='3'><hi>c</hi></item><item desc='2'><hi>b</hi></item><item desc='1'><hi>a</hi></item><item desc='4'><hi>d</hi></item></root>")
    
//This way is not working...
source.children().sort(function(a, b)
    {
        var aText = $(a).attr("desc").toLowerCase();
        var bText = $(b).attr("desc").toLowerCase();
        
        if(aText == bText)
            return 0;
         
        return aText > bText ? 1 : -1;
    });

alert(source[0].outerHTML);

//This is working...
var temp = source.children();

temp.sort(function(a, b)
    {
        var aText = $(a).attr("desc").toLowerCase();
        var bText = $(b).attr("desc").toLowerCase();
        
        if(aText == bText)
            return 0;
         
        return aText > bText ? 1 : -1;
    });

source = $("<root/>");
source.append(temp);

alert(source[0].outerHTML);