jquery - JQuery 中的 addClass 是否会覆盖任何现有的基于 css 类的样式?

标签 jquery css addclass

我正在尝试向单击的元素添加一个类。这些元素已分配有多个类,其中一个类带有边框。

虽然我知道我可以使用removeClass()删除当前的CSS类,但我需要该类提供的其他样式。所以我想知道以下示例是否可以不使用 addClass() 覆盖边框样式,边框是否已经设置了属性?我不想使用内联样式,因为它们不太容易维护。

CSS:

.dibHighlight{border:1px solid orange;}

JQuery 不起作用:

$(this).closest('.drop').addClass('dibHighlight'); // Doesn't work

有效的 JQuery:

$(this).closest('.drop').css({ border: "1px solid orange" }); // Works

最佳答案

您可以根据 CSS specificity 的规则使用 addClass 覆盖其他类就像在元素上使用 class 属性时 CSS 类会相互覆盖/继承属性一样。

第二个示例之所以有效,是因为它相当于在元素上设置 style 属性,根据 CSS 特异性,该属性几乎是最具体的。

相反,第一个示例不起作用,因为可能有一个比 .dibHighlight 更具体的 CSS 类

关于jquery - JQuery 中的 addClass 是否会覆盖任何现有的基于 css 类的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394366/

相关文章:

jquery - 在上一个事件完成后开始一个事件

jquery - WordPress:Slider Revolution 5.0 面临 Javascript 错误

jquery - window.location 受查询字符串限制

CSS- 无法在链接之间添加边距?

javascript - 为什么这不是有效的代码?

javascript - 如果条件为真,则将类添加到父元素

javascript - 如何迭代 `address_component` 以获得 `country` 或任何

jquery - jQuery 插件中的点击事件

javascript - 揭露面膜CSS

html - 不确定如何使用 css 选择器