14

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

示例:从我的搜索active中的所有<a> 锚点中删除 CSS 类。 div

如果是这样,怎么做?

4

4 回答 4

28
$("#mydiv a").removeClass("active");
于 2009-09-22T22:27:12.547 回答
6

如果搜索是一个类:

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

如果搜索是一个 ID:

$("#search a").removeClass("active");
于 2009-09-22T22:29:02.117 回答
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 的锚点

示例 #2

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

请记住,对于页面中的所有对象,只有一个对象可以具有任何特定id值。因此,您可以拥有两个id设置为 'divIDValue' 的对象 - 尽管您的页面可能看起来还不错,但 jQuery 只会找到第一个带有id. 另一方面,类可以用于多个项目(您可能已经知道)。

于 2009-09-22T22:28:20.127 回答
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 个可能的标签。

于 2016-04-04T19:04:47.740 回答