如何使用jQuery从CSV列表中根据id对div元素进行排序?

时间:2013-04-29 16:32:45

标签: jquery jquery-ui-sortable sorting quicksort

我在变量中有这个信息

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

我也有相应的div id,但是在洗牌顺序中。

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

现在我必须根据sortorder对div进行排序。 第一个应该是obj,第二个应该是exp这样的

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

如何使用jquery做到这一点?

1 个答案:

答案 0 :(得分:2)

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/

较旧版本的IE不支持Array对象的indexOf方法,为了支持这些伪浏览器,您可以使用jQuery $.inArray()实用程序函数:

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