是否有用于解析jQuery中使用的css规则的JavaScript库?
目标是使用jQuery轮询填充css3第n个子伪类。因此,我需要解析css规则,并使用jQuery对不支持直接来自css的第n个子元素的旧浏览器重新应用它们。所以我写了一些代码,但我很确定类似的东西应该已经出现在github上了。可能有人已经遇到了这样的问题?这是我的密码:是否有用于解析jQuery中使用的css规则的JavaScript库?,javascript,jquery,css,Javascript,Jquery,Css,目标是使用jQuery轮询填充css3第n个子伪类。因此,我需要解析css规则,并使用jQuery对不支持直接来自css的第n个子元素的旧浏览器重新应用它们。所以我写了一些代码,但我很确定类似的东西应该已经出现在github上了。可能有人已经遇到了这样的问题?这是我的密码: // if ie7 or ie8 if (!$.support.leadingWhitespace) { var aStyleSheetList =
// if ie7 or ie8
if (!$.support.leadingWhitespace) {
var aStyleSheetList = document.styleSheets,
aRules = [],
current = '',
aSelectors = [];
for (var i = 0; i < aStyleSheetList.length; i++) {
aRules = aStyleSheetList[i].cssRules || aStyleSheetList[i].rules;
for (var j = 0; j < aRules.length; j++) {
current = aRules[j];
if (current.selectorText && current.selectorText.indexOf('nth-child') !== -1) {
aSelectors.push([current.selectorText, current.cssText.substring(current.cssText.indexOf('{') + 1, current.cssText.indexOf('}'))]);
}
}
}
var jqCssObject = {},
declarations = [],
keyValuePair = [];
for (var k = 0; k < aSelectors.length; k++) {
declarations = aSelectors[k][1].split(';');
for (var m = 0; m < declarations.length; m++) {
keyValuePair = declarations[m].split(':');
jqCssObject[keyValuePair[0]] = keyValuePair[1];
}
$(aSelectors[k][0]).css(jqCssObject);
}
}
//如果是ie7或ie8
if(!$.support.leadingWhitespace){
var aStyleSheetList=document.styleSheets,
阿鲁莱斯=[],
当前=“”,
A选择器=[];
对于(变量i=0;i
如果您想在较旧的浏览器中使用伪选择器,如nth child
,一个选项是使用:
Selectivizr是一个模拟CSS3伪类的JavaScript实用程序
和Internet Explorer 6-8中的属性选择器。“
既然您已经在使用jQuery,那么您所要做的就是在页面中包含Selectivizr
,这样就可以兼容旧浏览器中的各种伪/属性选择器。为什么不使用jQuery选择器呢?还有是的。但我太懒了,每次我在css中添加第n个子元素时,都无法编辑js文件。而且会有很多代码。感谢css饼图链接。我可以从cdn动态加载selectivizr到脚本中吗?我知道,行吗?因为我以前曾多次尝试使用selectivizr,但在我看来很难让它正常工作。@paperstreet7它不应该太难,本教程会有帮助-不,selectivizr不适合我。在我看来,我不是唯一一个对选择性有问题的人。@paperstreet7还有谁?每当我使用它时,我都需要<5分钟才能让它工作