2014-09-12 12 views
5

Esiste un modo semplice per riordinare gli elementi dell'elenco utilizzando una classe?jQuery riordina gli elementi dell'elenco in base alla classe

Desidero specificare una classe per mettere in primo piano tali elementi all'inizio dell'elenco, con gli altri elementi dell'elenco elencati di seguito.

<ul class="order-me"> 
    <li class="">normal content</li> 
    <li class="">normal content</li> 
    <li class="featured">featured content</li> 
    <li class="">normal content</li> 
    <li class="featured">featured content</li> 
    <li class="">normal content</li> 
    <li class="">normal content</li> 
</ul> 

output desiderato:

<ul class="order-me"> 
    <li class="featured">featured content</li> 
    <li class="featured">featured content</li> 
    <li class="">normal content</li> 
    <li class="">normal content</li> 
    <li class="">normal content</li> 
    <li class="">normal content</li> 
    <li class="">normal content</li> 
</ul> 

Grazie!

risposta

9

È possibile aggiungere gli elementi .featured ai rispettivi valori ul per spostarli in cima all'elenco. Prova questo:

$('.featured').prependTo('.order-me'); 

Example fiddle

+0

Wow, mi succhiare di lato era più facile di quanto pensassi. Grazie Rory! –

+0

jQuery di solito è: D Felice di aiutare. –

+0

Nice .. Risposta .. – Prabhagaran

1

Per aggiungere alla risposta di @Rory McCrossan, ho aggiunto la possibilità di ordinare con pulsanti di navigazione

$("ul.order-nav li").click(function() { 
    // Find the Data attribute from unordered list [.order-nav] 
    var sortClass = '.' + $(this).data('sort-by'); 
    // Prepent the [li] with matching class to top of [ul] 
    $(sortClass).prependTo('.order-me'); 
}); 

Here is the Fiddle

+0

In ritardo per la festa, ma una bella aggiunta, mi piace. Saluti. –

Problemi correlati