علیرضا احمدی بابلانی : وب مهراز - جامعه برنامه نویسی ایران

مرتب سازی یا sort عناصر توسط jQuery

فرض کنین html من به این شکل هست :
<div class="AllDiv">
     <p>
               متن شماره 1 
              <span class="date">1394/05/03  11:30 am</span>
     </p>
     <p>
               متن شماره 2
              <span class="date">1394/05/05  10:30 am</span>
     </p>
     <p>
               متن شماره 3
              <span class="date">1394/05/01  12:30 am</span>
     </p>
     <p>
               متن شماره 4
              <span class="date">1394/05/03  21:30 am</span>
     </p>
</div>
     

من نیاز دارم تا با استفاده از jQuery  این پاراگراف ها را بر اساس date مرتب سازی کنم یعنی آنکه تاریخ و ساعتش کمتر است بالا قرار بگیرد و آنکه بیشتر است در پایین قرار گیرد.

پاســخ ها

7a1ba23bee0c433abe47664d2a9fa3c3
ایمان نکونام : به نظر من استفاده از AngularJS اینجا خیلی خوب باشه:
http://www.w3schools.com/angular/angular_filters.asp

یکشنبه 11 مرداد 1394 ساعت : 57 : 11
0000000000000000000000000000001
علیرضا احمدی بابلانی : آقای صالحی من از این کد استفاده کردم ولی function  به درستی کار نکرد
دوشنبه 05 مرداد 1394 ساعت : 31 : 9
2766af949f58486ebdd5b11576a58bc4
رضا صالحی : بهتر است Html شما به این شکل باشد :

<div class="Alldiv">
    <p data-date="1394/05/03  11:30 am"> متن شماره 1 </p>
    <p data-date="1394/05/05  10:30 am"> متن شماره 2 </p>
    <p data-date="1394/05/01  12:30 am"> متن شماره 3 </p>
    <p data-date="1394/05/03  21:30 am"> متن شماره 4 </p>
</div>

شما میتونین از کد های زیر برای مرتب سازی و با sort عناصر html تون استفاده کنین .

function sortContacts(){
    var Alldiv = $('div.Alldiv'), cont = Alldiv.children('p');

cont.detach().sort(function(a, b) {
            var aval = $(a).data('date');
            var bval = $(b).data('date')
            //return aval  - bval ;
            return (aval > bval ) ? (aval > bval ) ? 1 : 0 : -1;
        });

Alldiv.append(cont);
}
    sortContacts();

})


یکشنبه 04 مرداد 1394 ساعت : 15 : 16
تعداد بازدید : 447
ارسال به دوستان

ارسال