Если есть массив идентификаторов Javascript
var myArray = ['2', '1', '3'];
Теперь у меня также есть группа DIVS с соответствующим идентификатором.
<div id='container'>
<div id='item1'>1</div>
<div id='item2'>2</div>
<div id='item3'>3</div>
</div>
Есть ли простой способ сортировки этих элементов в зависимости от порядка массива? Я возился с идеей просто проходить через div и использовать insertBefore()
и insertAfter()
для переупорядочения элементов, но мне интересно, есть ли лучший способ ..
Это то, что я до сих пор придумал ( JSFiddle DEMO )
(function( $ ){
$.fn.jaySort= function(prefix, lst) {
var prev=null;
for (var x=0; x<lst.length; x++){
if (!prev) prev = $('#placeHolder');
$('#' + prefix + lst[x]).insertAfter(prev);
prev = $('#' + prefix + lst[x]);
}
};
})( jQuery );
///////////////////////////////////////////
var myArray = ['2', '1', '3'];
$('#container').jaySort('item', myArray);
UPDATE
На основании принятого ответа ниже, код был уточнен до:
(function( $ ){
$.fn.jaySort= function(prefix, lst) {
for (var x=0; x<lst.length; x++)
$(this).append($('#' + prefix + lst[x]));
};
})( jQuery );
$('#container').jaySort('item', ['3', '2', '1']);