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

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

现在我必须根据排序顺序对 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');

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'); 

关于jquery - 如何使用 jQuery 根据 CSV 列表中的 id 对 div 元素进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16283734/

相关文章:

javascript - 在使用 window.find() 进行字符串搜索期间,会出现一个对话框

javascript - jQuery 可对静态内容进行排序

Java Map vs Array(Temp)排序的最后一个索引

php - 按其子数组的大小对多维数组进行排序

jquery fade 元素不显示样式为 'visibility: hidden' 的元素

javascript - 密码锁游戏 (JavaScript)

javascript - 如何使用 JSON 数组中的值更改 $.get 中的数据元素?

javascript - 使用按钮单击将 jQuery UI 可排序元素设置为第一个位置

jquery - ExtJs 可排序元素列表

Javascript/JQuery 按字母顺序对带有 anchor 的列表进行排序