2009-07-21 3 views
6

Ich benutze derzeit jQuery und möchte etwas Hilfe bei der Iteration durch alle "checked" Checkboxen und entferne eine Klasse ("new_message" genannt) der Eltern-Tabellenzeile.Jquery Iteriere durch alle aktivierten Kästchen und entferne Klasse

Ich habe ein Grundkonzept, aber ich kann das ganze Ding nicht ganz herausfinden.

Hier ist, was ich bin derzeit mit:

$("#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"); 
     } 
    ); 
    }); 
}); 

Letztendlich wird dies auch eine Datenbank aktualisieren werden, so dass, wenn der Code angepasst werden kann sowohl zu empfangen, das wäre toll.

Jede Anleitung wird sehr geschätzt!

+0

können Sie Ihr Markup anzeigen. – redsquare

Antwort

6

Ich denke, das funktioniert:

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

Oder wenn es nur das direkte TR-Elternelement ist, das Sie abgleichen möchten, dann ist dies:

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

jQuery macht die ganze Schleife für Sie, so dass Sie alle haben müssen() es.

Sobald Sie die Auswahl ": checked" verwenden, sollten Sie erneut überprüfen, ob das Element aktiviert ist. Dies sollte Ihre Selektorergebnisse auf nur geprüfte Elemente beschränken.

+0

Ich würde .closes als Eltern verwenden bekommt alle Vorfahren dann Filter - langsamer – redsquare

+0

Ich dachte darüber nach, aber das OP nicht angeben, ob es nur die erste Ebene TR Elternteil oder wenn es mehrere waren. Und da es sich anhörte, als würde der aktuelle Selektor funktionieren, wollte ich das nicht ändern. – MacAnthony

+0

Das war es. Vielen Dank. Ich habe auch .closes verwendet, was genauso gut funktioniert. –

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

wird die entsprechende Klasse aus dem Kontrollkästchen selbst entfernen, so

$(this).parent.... 

funktionieren soll, je nachdem, was Ihre HTML sah aus wie

Verwandte Themen