我在变量中保存了此信息
"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>
现在我必须根据排序顺序对 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 做到这一点?
最佳答案
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');
关于jquery - 如何使用 jQuery 根据 CSV 列表中的 id 对 div 元素进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16283734/