如何根据给定列表/数组中的div id对div元素进行排序?

SHA*_*NGH 2 html jquery

我在变量中有排序顺序.

   var sortorder = "Amazon,Soap,Drugstore,Walmart,Walgreens".split(',');
Run Code Online (Sandbox Code Playgroud)

我的要求是它应该按照上面给出的顺序排列,如果某个div的id在数组中不可用,那么它应该被添加到最后一个.下面的代码是按顺序排序数据,但问题是如果数组中不存在div id,那么它不会将该div移动到最后一个.

HTML

    <div class="wtb_results_online right_results wtb_results_online_results_vantage">
      <div class="results">
            <h3><span>Online Retailers</span></h3>
            <div class="result_item result_innerdv" id="axyz"><span class="year">axyz</span><a class="btn_pack_sizes" href="javascript:void(0);"></a></div>
            <div class="result_item result_innerdv" id="Drugstore"><span     class="year">Drugstore</span><a class="btn_pack_sizes" href="javascript:void(0);"></a></div>
            <div class="result_item result_innerdv" id="Walgreens"><span class="year">Walgreens</span><a class="btn_pack_sizes" href="javascript:void(0);"></a></div>
            <div class="result_item result_innerdv" id="flipcart"><span     class="year">flipcart</span><a class="btn_pack_sizes" href="javascript:void(0);"></a></div>
            <div class="result_item result_innerdv" id="Amazon"><span class="year">Amazon</span><a class="btn_pack_sizes" href="javascript:void(0);"></a></div>
            <div class="result_item result_innerdv" id="Walmart"><span class="year">Walmart</span><a class="btn_pack_sizes" href="javascript:void(0);"></a></div>
         </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

jQuery的

  var sortorder = "Amazon,Soap,Drugstore,Walmart,Walgreens".split(',');

    $.each(function(index,value){
        $('.wtb_results_online_results_vantage .result').append($('.wtb_results_online_results_vantage .result'));

    });
    $('.wtb_results_online_results_vantage .results > div').each(function(){
        if($.inArray($(this).attr('id'), sortorder)==-1){
            $('.wtb_results_online_results_vantage .results').append($('.wtb_results_online_results_vantage .results'));
        }
    });       
Run Code Online (Sandbox Code Playgroud)

Lin*_*vel 5

试试吧

$.each(sortorder,function(index,value){
    if($.inArray(value, sortorder)!==-1){
        $('#container').append($('#'+value));
    }
});

$('#container div').each(function(){
    if($.inArray($(this).attr('id'), sortorder)==-1){
        // inArray will return -1, if the element was not found in array
        $('#container').append($('#'+$(this).attr('id')));
    }
});
Run Code Online (Sandbox Code Playgroud)

更新小提琴

编辑:更新小提琴