JQuery Remove CSS Class From All Descendants At Once
Solution 1:
$("#mydiv a").removeClass("active");
Solution 2:
If search is a class:
$("div.search a").removeClass("active");
If search is an ID:
$("#search a").removeClass("active");
Solution 3:
Yeah. You do it like this:
$("div a .className").removeClass("className")
Or, supposing you only want to do it on a certain div, as long as the div has an id attribute set, you could do this:
$("#divIDValue a .className").removeClass("className")
With jQuery selectors, # with some text after it refers to the object (div, span, anchor, whatever) with the id
attribute set to whatever that text is. A period refers to all objects with that the class name matching the text coming after the period. As demonstrated above, you can nest the selector text. So in the examples above, here's what happens:
Example #1
- Find all divs
- Finds all anchors within all divs
- Finds all of the anchors from #2 that have class .className
Example #2
- Find the div with the
id
attribute set to "divIDValue" - Find all anchor tags within that div
- Find all anchor tags within that list of anchor tags that match the class name
className
Keep in mind that for all of the objects in your page, only one object can have any particular id
value. So, you can have two objects with the id
set to 'divIDValue' - although your page will still probably look OK, jQuery will only find the first item with id
. Classes, on the other hand, can be used for multiple items (as you probably already know).
Solution 4:
A more generic solution to remove the class from any possible element.
// I like to use find as I usually have my wrapper in a variable.
$('#my-wrapper').find('.active').removeClass('active');
Or
$('#my-wrapper .active').removeClass('active');
This will affect all elements within the wrapper: span, h3, div, li, td, etc. With html 5 there are now over 100 possible tags.
Post a Comment for "JQuery Remove CSS Class From All Descendants At Once"