Entfernen Sie eine KLASSE für alle untergeordneten Elemente


78

Angesichts des folgenden HTML:

<div id="table-filters">
    <ul>
        <li class="active">blah</li>
        <li>blah</li>
        <li>blah</li>
        <li>blah</li>
    </ul>
</div>

Wie kann ich mithilfe von Tabellenfiltern als jQuery-Selektor die Elemente löschen CLASS=ACTIVE, unabhängig LIdavon, auf welcher sie sich gerade befinden?

Vielen Dank

Antworten:


130

Das sollte funktionieren:

$("#table-filters>ul>li.active").removeClass("active");
//Find all `li`s with class `active`, children of `ul`s, children of `table-filters`

1
Die obige Lösung funktioniert nicht in Chrom. Also habe ich es einfach in $ ("# table-filter> li.active") geändert. removeClass ("active");. Tq.
Chandoo

37

Sie können auch so vorgehen:

  $("#table-filters li").parent().find('li').removeClass("active");

2
Das ist möglich, aber für jQuery viel schwieriger zu verarbeiten. Wenn Sie also auf eine schnelle Antwort zählen, sollten Sie die oben beschriebene Methode verwenden. Warum sollten Sie auch alle 'li' auswählen, dann die Eltern dazu bringen, das 'li' zu finden und dann die aktive Klasse zu entfernen? Etwas unproduktiv ..
Warre Buysse

Wie ich oben erwähnt habe, ist dies eine andere Art, dies zu tun.
Insomiac

Dies ist hilfreich, wenn der Selektor selbst zu breit ist und Sie sich auf die untergeordneten parentElemente eines einzelnen Elements beschränken möchten .
Jason
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.