Видаліть КЛАС для всіх дочірніх елементів


78

Враховуючи такий HTML:

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

Використовуючи табличні фільтри як селектор jQuery, як я можу очистити елементи, що мають CLASS=ACTIVE, незалежно від того, на якому з них LIвін знаходиться?

Дякую

Відповіді:


130

Це має спрацювати:

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

1
вищевказаний розчин не працює в хромі. отже, я щойно змінив його на $ ("# table-filters> li.active"). removeClass ("active") ;. Tq.
chandoo

37

Ви також можете зробити так:

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

2
Це можливо, але набагато складніше обробити для jQuery, тому, якщо ви розраховуєте на швидку відповідь, вам слід скористатися наведеним вище методом. Також чому б вам вибрати все "li", а потім змусити батьків знайти "li", а потім видалити активний клас? Трохи непродуктивний ..
Warre Buysse

Як я вже згадував вище, це ще один спосіб зробити це.
insomiac

Це корисно, коли сам селектор занадто широкий, і ви хочете обмежити дочірні parentелементи одного елемента.
Джейсон,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.