具有数组值的jquery排序元素

Sto*_*art 4 jquery jquery-ui-sortable

我需要根据它的属性排序一些元素.举个例子:

<div id="sort">
<div n="1"></div>
<div n="2"></div>
<div n="3"></div>
<div n="4"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

和array_num

{3, 2, 1, 4}
Run Code Online (Sandbox Code Playgroud)

伪代码:

$('#sort').sort(array_num, 'n');
Run Code Online (Sandbox Code Playgroud)

结果将是:

<div id="sort">
<div n="3"></div>
<div n="2"></div>
<div n="1"></div>
<div n="4"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

fan*_*uka 7

?var order = [3, 2, 4, 1]?;
var el = $('#sort');
var map = {};

$('#sort div').each(function() { 
    var el = $(this);
    map[el.attr('n')] = el;
});

for (var i = 0, l = order.length; i < l; i ++) {
    if (map[order[i]]) {
        el.append(map[order[i]]);
    }
}
Run Code Online (Sandbox Code Playgroud)

这里的完整代码


Shr*_*rat 5

未经测试...

$.fn.asort = function (order, attrName) {
    for(var i = 0, len = order.length; i < len; ++i) {
        this.children('[' + attrName + '=' + order[i] + ']').appendTo(this);
    }
}
Run Code Online (Sandbox Code Playgroud)