问题
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