2011-09-20 6 views
3

div에 포함 된 특정 값의 기준에 따라 div를 재정렬하려고합니다. 내 코드는 다음div와 그 자녀의 순서 바꾸기

HTML

<div id="content_id_1"> 
    <ul> 
    <li> some text, not important for the reordering but it must move with it's parent div</li> 
    <li> some text, not important for the reordering but it must move with it's parent div</li> 
    <li> 
     <div class=‘date--2011-11-11’>2011-11-11’< /div> 
    </li> 
    </ul> 
</div> 
<div id="content_id_2"> 
    <ul> 
    <li> some text, not important for the reordering but it must move with it's parent div</li> 
    <li> some text, not important for the reordering but it must move with it's parent div</li> 
    <li> 
     <div class=‘date--2011-10-10’>2011-10-10’< /div> 
    </li> 
    </ul> 
</div> 

등등 ... #data_filter라는 필터를 변경하면, 내가 주요 사업부 (content_id_something있는 사람)과 그 전체 내용을 부탁에

될 것입니다 날짜 값에 의해 재정렬되었습니다. 다음 예제 (http://stackoverflow.com/questions/2501789/jquery-sort-divs-according-to-content-of-different-sub-divs)를 적용하려고 시도했지만 나는 조금 잃어버린 ... JQuery :

$("#data_filter").change(function(){ 
    function sortDateASC(a, b){ 
     return $(a).find(div[class^=date--]) > $(b).find(div[class^=date--]) ? 1 : -1; 
    }; 
$(div[class^=date--]) .each(function(){ 
    $(this).parent().parent().parent().sort(sortDateASC); 
    }); 
}) ; 

도움 주셔서 감사합니다.

답변

1
+0

실제로'''는 제거되어야합니다. 답변을 업데이트 중입니다. –

+0

Tentonaxe 대단히 감사합니다! '실제로 오타 였어. – Raphael

0

jquery 객체가 아닌 값만 비교할 수 있습니다. 시도해 볼 수 있습니다.

잘 작동하는지 확실하지 않습니다. 이 같은

+0

당신에게 앤디 감사합니다 여기에 바이올린이있다 : 목록이 listparent

편집의 ID로 요소에 싸여

$("#data_filter").change(function(){ function sortDateASC(a, b){ var keya = new Date($(a).find('div[class^="date--"]').text().replace("'","")).getTime(); var keyb = new Date($(b).find('div[class^="date--"]').text().replace("'","")).getTime(); return keya > keyb ? 1 : keya < keyb ? -1 : 0; } $('div[class^="date--"]') .each(function(){ $(this).closest("#listparent").children().sort(sortDateASC).appendTo("#listparent"); }); }); 

! 불행히도 작동하지 않습니다 ... – Raphael

관련 문제