我在变量中有这个信息
"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做到这一点?
答案 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');
较旧版本的IE不支持Array对象的indexOf
方法,为了支持这些伪浏览器,您可以使用jQuery $.inArray()
实用程序函数:
$('div').sort(function(a, b){
return $.inArray(a.id, sortorder) > $.inArray(b.id, sortorder);
}).appendTo('body');