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

Ein Lehrling
quelle

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`
Joel
quelle
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");
Schlaflosigkeit
quelle
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