0

ルールを更新する CSS と共に更新する CSS ルールを受け取る関数を作成しようとしていますが、これまでのところ次のようになっています。

getCSSRule:function(getRule, newRule){
    var styles=document.styleSheets;
    for(var i=0,l=styles.length; i<l; ++i){
        var sheet=styles[i]; 

        if(sheet.title === "style"){
            var rules=sheet.cssRules;
            for(var j=0, l2=rules.length; j<l2; j++){
                var rule=rules[j];

                // SELECT APPROPRIATE RULE IN STYLESHEET
                if(getRule === rule){  

                    // LOSE IT HERE

                };
            };
        };
    };
},

これまでのところ、コードは機能します。すべてのスタイルシートが検索され、タイトルごとにターゲットが指定され、そのスタイルシートのルールがループされます。私が今直面している問題は、getRule (関数に渡された CSS ルール名) を CSS のルールと比較することです。私は document.styleSheets を使用するのが初めてで、構造がやや混乱しています。どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

2

CSS ルールには名前がありません。おそらくあなたは意味しましたselectorTextか?その場合、次のように正しいルールを選択できます。

if (getRule === rule.selectorText) {
    /* do stuff */
}

getRule必要なルールの正確なセレクターです。この場合、「exact」はセレクターの正確な形式を意味します。スタイルシートの例:

.div {...}
#div {...}
div {...}
div:hover {...}

divクラスのルールを変更したい場合は、 、のルールを変更したい場合は、などにするgetRule必要があります。.divdiv.hovergetRule.div:hover

于 2012-10-05T21:42:01.663 に答える