javascript – 可以jQuery更改css样式定义? (不是每个元素的单个css)

我没有看到任何文档,说jQuery可以更改任何CSS定义,如更改

td { padding: 0.2em 1.2em }

td { padding: 0.32em 2em }

但是要么必须更改整个样式表,要么更改每个元素的类,或者更改每个元素的CSS。

正在改变样式定义吗?

有DOM访问样式表,但它是我们倾向于避免的事情之一,因为IE需要一个负载的兼容性cruft。

一个更好的方法通常是通过在祖先上使用简单的类更改来间接触发更改:

td { padding: 0.2em 1.2em }
body.changed td { padding: 0.32em 2em }

现在只是$(‘body’)。addClass(‘changed’)和所有的tds更新。

如果你真的必须frob样式表:

var sheet= document.styleSheets[0];
var rules= 'cssRules' in sheet? sheet.cssRules : sheet.rules; // IE compatibility
rules[0].style.padding= '0.32em 2em';

这假定所讨论的td规则是第一个样式表中的第一个规则。如果没有,你可能需要通过迭代查找正确的selectorText的规则来搜索它。或者只是添加一个新规则到最后,覆盖旧的规则:

if ('insertRule' in sheet)
    sheet.insertRule('td { padding: 0.32em 2em }', rules.length);
else // IE compatibility
    sheet.addRule('td', 'padding: 0.32em 2em', rules.length);

jQuery本身不给你任何特殊的工具来访问样式表,但有可能有插件可能。

http://stackoverflow.com/questions/3164740/can-jquery-change-css-style-definition-not-individual-css-of-each-element

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 可以jQuery更改css样式定义? (不是每个元素的单个css)