【发布时间】:2009-09-22 22:24:35
【问题描述】:
我可以一次从一个元素中的所有 XYZ 元素中删除一个特定的 CSS 类吗?
示例:从我的搜索 div 中的所有<a> anchors 中删除 CSS 类 active。
如果有,怎么做?
【问题讨论】:
标签: javascript jquery jquery-selectors
我可以一次从一个元素中的所有 XYZ 元素中删除一个特定的 CSS 类吗?
示例:从我的搜索 div 中的所有<a> anchors 中删除 CSS 类 active。
如果有,怎么做?
【问题讨论】:
标签: javascript jquery jquery-selectors
$("#mydiv a").removeClass("active");
【讨论】:
如果搜索是一个类:
$("div.search a").removeClass("active");
如果搜索是一个 ID:
$("#search a").removeClass("active");
【讨论】:
是的。你这样做:
$("div a .className").removeClass("className")
或者,假设你只想在某个 div 上做,只要 div 设置了 id 属性,你可以这样做:
$("#divIDValue a .className").removeClass("className")
使用 jQuery 选择器,# 后面带有一些文本,它指的是对象(div、span、anchor 等),id 属性设置为该文本是什么。句点是指类名与句点之后的文本匹配的所有对象。如上所示,您可以嵌套选择器文本。所以在上面的例子中,发生了什么:
示例 #1
示例 #2
id属性设置为“divIDValue”的divclassName 匹配的所有锚标记
请记住,对于页面中的所有对象,只有一个对象可以具有任何特定的 id 值。因此,您可以将两个对象的id 设置为 'divIDValue' - 尽管您的页面可能看起来还不错,但 jQuery 只会找到带有id 的第一个项目。另一方面,类可以用于多个项目(您可能已经知道)。
【讨论】:
从任何可能的元素中删除类的更通用的解决方案。
// 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 个可能的标签。
【讨论】: