我正在尝试向单击的元素添加一个类。这些元素已分配有多个类,其中一个类带有边框。
虽然我知道我可以使用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/