Javascript ID의 배열이있는 경우jQuery : ID 목록을 기반으로 ID를 기준으로 Div 정렬
var myArray = ['2', '1', '3'];
이제 해당 ID가있는 DIVS 그룹도 있습니다.
<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);
업데이트
아래에서 허용되는 대답을 기준으로 코드는 다음으로 수정되었습니다.
(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
꽤 깔끔한 솔루션, 어쨌든 모든 항목을 반복해야 할 것입니다. – rsplak
아무 것도 ** 잘못 ** 있습니다. 아마도 반복하지 않고 더 좋은 방법이 있는지 궁금합니다. – Dutchie432