使用javascript或jquery覆盖一个css规则
是否有可能覆盖使用jQuery或JavaScript的CSS规则?
比方说,我有一个表,有一堆行,每行都有一个特定类型的数据。 每行(tr)都添加了一个类,所以我们可以区分它所持有的数据类型。
对于这个例子,我们假设行的类名为“names”,保存有关人员的信息,而类“company”的行保存有关公司的信息。
假设我们的桌子上方有一个过滤器,我们可以在桌子上隐藏并显示所有公司或人员。 当我们选择一个复选框时,我们要么将特定行的显示更改为none,要么将其屏蔽(取决于复选框的状态),或者向特定行添加一个类(隐藏)。 我们的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)添加一个类,而不是行。
例如:你想隐藏公司行,你在table元素中添加一个“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"));
});
你可以使用类似的方法,我认为?
链接地址: http://www.djcxy.com/p/94875.html上一篇: Overwrite a css rule using javascript or jquery
下一篇: Best way to dynamically add and remove style on elements