How to sort div elements according to id from a CSV list using jQuery? [duplicate]

别等时光非礼了梦想. 提交于 2019-12-02 07:08:03

问题


I have this info in a variable

"sortorder": "obj,exp,qual,edu,int,ref,img

I also have corresponding div id's but in shuffled order.

<div id = "qual">info</div>
<div id = "exp">info</div>
<div id = "edu">info</div>
<div id = "int">info</div>
<div id = "ref">info</div>
<div id = "img">info</div>
<div id = "obj">info</div>

Now i have to sort the div's according to sortorder. The first should be obj, second should be exp like this

<div id="obj">info<div>
<div id="exp">info<div>
<div id="qual">info<div>
<div id="edu">info<div>
<div id="int">info<div>
<div id="ref">info<div>
<div id="img">info<div>

How to do this using jquery?


回答1:


var sortorder = "obj,exp,qual,edu,int,ref,img".split(',');

$('div').sort(function(a, b){
    return sortorder.indexOf(a.id) > sortorder.indexOf(b.id);
}).appendTo('body');

http://jsfiddle.net/JYnMd/

Older versions of IE do not support Array object's indexOf method, for supporting those pseudo-browsers, you can use jQuery $.inArray() utility function:

$('div').sort(function(a, b){
  return $.inArray(a.id, sortorder) > $.inArray(b.id, sortorder);
}).appendTo('body'); 


来源:https://stackoverflow.com/questions/16283734/how-to-sort-div-elements-according-to-id-from-a-csv-list-using-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!