Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有用于解析jQuery中使用的css规则的JavaScript库?_Javascript_Jquery_Css - Fatal编程技术网

是否有用于解析jQuery中使用的css规则的JavaScript库?

是否有用于解析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 =

目标是使用jQuery轮询填充css3第n个子伪类。因此,我需要解析css规则,并使用jQuery对不支持直接来自css的第n个子元素的旧浏览器重新应用它们。所以我写了一些代码,但我很确定类似的东西应该已经出现在github上了。可能有人已经遇到了这样的问题?这是我的密码:

        // 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分钟才能让它工作