如果有的Javascript ID数组现在jQuery的:排序基于它们的ID的div,基于到ID列表
var myArray = ['2', '1', '3'];
,我也有一组具有相应的ID的div。
<div id='container'>
<div id='item1'>1</div>
<div id='item2'>2</div>
<div id='item3'>3</div>
</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']);
你有什么问题? – mcgrailm 2011-03-29 14:15:43
非常整洁的解决方案,你将不得不循环所有项目 – rsplak 2011-03-29 14:16:13
我想没什么是**错了**它只是想知道是否有更好的方法,也许没有循环。 – Dutchie432 2011-03-29 14:25:19