2009-07-21 12 views
6

Attualmente sto usando jQuery e vorrei qualche aiuto nell'iterazione di tutte le caselle di controllo "spuntate" e rimuovere una classe (chiamata "new_message") della riga della tabella padre.Jquery Iterate attraverso tutte le caselle selezionate e rimuove la classe

Ho un concetto di base, ma non riesco a capire l'intera cosa.

Ecco quello che sto attualmente in uso:

$("#unread_button").click(function (event) { 
event.preventDefault; 
$(":checkbox:checked").each( 
function() 
{ 
    if (this.checked) 
    { 
     var divs = $.makeArray($(this).parents("tr").attr("id")); 
    } 
$(divs).each(
    function(int) 
     { 
      $(this).removeClass("new_message"); 
     } 
    ); 
    }); 
}); 

Alla fine, questo sarà l'aggiornamento di un database e, quindi, se il codice può essere adattata per accogliere entrambi, sarebbe fantastico.

Qualsiasi consiglio è molto apprezzato!

+0

puoi mostrare il tuo markup. – redsquare

risposta

6

Penso che questo funzionerà:

$('input:checkbox:checked').parents('tr').removeClass('new_message'); 

Oppure se è solo il genitore diretto TR che vuoi abbinare, allora questo:

$('input:checkbox:checked').closest('tr').removeClass('new_message'); 

jQuery fa tutto il ciclo per te quindi dovresti avere tutti i() es.

Una volta utilizzato il selettore ": checked", è necessario ricontrollare se l'elemento è selezionato. Questo dovrebbe limitare i risultati del selettore solo agli elementi selezionati.

+0

Vorrei usare il più possibile quando i genitori ottengono tutti gli antenati e poi i filtri - più lento – redsquare

+0

Ho pensato a questo, ma l'OP non ha specificato se era solo il genitore di primo livello TR o se c'erano più. E dal momento che sembrava che il selettore corrente funzionasse, non voleva cambiarlo. – MacAnthony

+0

Era così. Grazie. Ho anche usato .closest, che funziona altrettanto bene. –

4
$("input:checked").each(function() { 
    $(this).removeClass("new_message"); 
} 

rimuoverà relativa classe dalle caselle stesse, in modo da

$(this).parent.... 

dovrebbe funzionare a seconda di ciò che il codice HTML appare come

Problemi correlati