使用javascript或jquery覆盖css规则
Overwrite a css rule using javascript or jquery
是否可以使用jquery或javascript覆盖css规则?
假设我有一个表,它有很多行,每一行都包含一种特定类型的数据。每一行(tr)都添加了一个类,因此我们可以区分它所包含的数据类型。
对于本例,假设类为"name"的行包含有关人员的信息,类为"company"的行则包含有关公司的信息。
假设我们的表上方有一个过滤器,在那里我们可以隐藏和显示表中的所有公司或人员。当我们选择一个复选框时,我们要么将特定行的显示更改为无,要么将其更改为阻止(取决于复选框状态),或者将一个类(隐藏)添加到特定行中。我们的css看起来像这样:
.names {
/*additional css stuff here*/
}
.company {
/*additional css stuff here*/
}
.company .hidden {
display: none;
}
.names .hidden {
display: none;
}
这很好,但如果我把隐藏的类添加到特定的行中,隐藏所有的名字,但后来动态地把一个人的新记录引入数据库,会怎么样。在将特定类插入到表结构之前,我必须检查我们的复选框状态,并将其应用(或提交)到新的tr。
如果我能以某种方式动态覆盖css规则,例如,当"names"复选框被选中时,我会覆盖css中的".names"类,以显示:none,那么在表中插入新数据时,我就不必担心进行额外的检查。
这有可能吗?
编辑:我知道如何动态地添加一个新类,或者从html元素中删除一个类。我想要实现的是在运行jquery时更改样式表,从原始样式表覆盖特定类的规则。
您不应该更改样式表规则。改为更改添加类的位置以控制显示状态。将类添加到表(或tbody),而不是行。
示例:如果要隐藏公司行,则在表元素中添加一个类"companyHidden"。以下规则将隐藏这些行。
table.companyHidden tr.company {
display: none;
}
这样,您就不必担心新行,而CSS为您完成了工作。
您可以在文档正文中动态添加一个带有所需CSS的样式元素。
请参阅此JSFiddle
如果引用bootstrap.css,并且在加载时覆盖.btn primary:
$(function(){
$("<style>")
.text(".btn-primary{ background-color: cyan !important; min-height:20px; }")
.appendTo($("body"));
});
我想你可以用类似的方法吗?
相关文章:
- 用Javascript修改内部标记的CSS规则
- 如何禁用和启用css规则
- 使用javascript或jquery覆盖css规则
- 新的javascript HTML元素不遵循css规则
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - 正则表达式用于删除 js 中的 css 规则
- 通过jQuery或Javascript应用于父窗口的外部css规则
- 在javascript问题中应用复合css规则
- 使用JS添加CSS规则
- 循环使用CSS规则遍历数组,并将它们应用于元素
- 可以't覆盖CSS规则
- 选择所有具有特定css规则但没有jQuery的节点
- HTML按钮即使在聚焦时也不会点击,CSS规则也会生效
- 如何更改外部样式表的css规则
- CSS 规则在执行 JavaScript 时不会应用任何效果
- 我的 CSS 规则在我的 jQuery 函数执行后加载
- 如果文件名取自用户,则不应用 CSS 规则
- 使用 httpscript 使用 css 规则
- 如何将 css 规则应用于 Javascript 表达式
- 在 IE6 中运行时添加 CSS 规则 - 对象不支持此属性或方法