2013-04-29 2 views
2

У меня есть эта информация в переменнойКак отсортировать элементы div в соответствии с идентификатором из списка CSV с помощью jQuery?

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

У меня также есть соответствующие идентификаторы DIV, но в перетасовал порядке.

<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, второй должен быть ехр как этот

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

ответ

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 не поддерживают indexOf метод массива объекта, для поддержки этих псевдо-браузеров, вы можете использовать JQuery функции $.inArray() утилиты:

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

WoW !!! Он работал, спасибо за ответ. –

+0

Предположим, у меня есть HTML в переменной html. Затем, как переписать html из перетасованного div с отсортированным div –

+0

@undefined. Отлично. Благодаря :) – hajamie

Смежные вопросы