jQuery立即从所有后代中删除CSS类

时间:2009-09-22 22:24:36

标签: javascript jquery jquery-selectors

我可以一次从元素中的所有XYZ元素中删除特定的CSS类吗?

示例:从搜索 active中的所有<a> 主播中删除CSS类div

若然,怎么样?

4 个答案:

答案 0 :(得分:26)

$("#mydiv a").removeClass("active");

答案 1 :(得分:7)

如果搜索是一个类:

$("div.search a").removeClass("active");

如果搜索是ID:

$("#search a").removeClass("active");

答案 2 :(得分:5)

呀。你这样做:

$("div a .className").removeClass("className")

或者,假设您只想在某个div上执行此操作,只要div设置了id属性,您就可以执行此操作:

$("#divIDValue a .className").removeClass("className")

使用jQuery选择器,#带有一些文本后引用对象(div,span,anchor,等等),id属性设置为该文本。句点指的是具有与该句点之后的文本匹配的类名称的所有对象。如上所示,您可以嵌套选择器文本。所以在上面的例子中,这是发生的事情:

示例#1

  1. 查找所有div
  2. 查找所有div中的所有锚点
  3. 查找#2中具有类.className
  4. 的所有锚点

    示例#2

    1. 找到id属性设置为“divIDValue”
    2. 的div
    3. 查找该div中的所有锚标记
    4. 查找与类名className
    5. 匹配的锚标记列表中的所有锚标记

      请注意,对于页面中的所有对象,只有一个对象可以具有任何特定的id值。因此,您可以将id设置为“divIDValue”的两个对象 - 虽然您的页面看起来仍然可能正常,但jQuery只会找到id的第一个项目。另一方面,类可用于多个项目(您可能已经知道)。

答案 3 :(得分:4)

从任何可能的元素中删除类的更通用的解决方案。

// I like to use find as I usually have my wrapper in a variable.
$('#my-wrapper').find('.active').removeClass('active');

或者

$('#my-wrapper .active').removeClass('active');

这将影响包装器中的所有元素:span,h3,div,li,td等。使用html 5,现在有超过100个可能的标签。