欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

使用Javascript列出已知的CSS類

我試圖找到一種好的方法來(lái)收集給定文檔中包含的樣式表中定義的類名。我知道文件的事。樣式她列出來(lái)了,但是看起來(lái)不太容易解析。我要找的是一個(gè)樣式表文檔,比如:

.my_class { 
    background: #fff000; 
}
.second_class {
    color: #000000;
}

我可以提取一個(gè)類似于["my_class "," second_class"]的數(shù)組。這顯然假設(shè)了完全加載的dom和樣式表的有利場(chǎng)景。

我一直在到處尋找一個(gè)好方法來(lái)做這樣的事情,到目前為止,沒(méi)有取得什么進(jìn)展。有人知道如何完成這件事嗎?謝謝!

這將顯示樣式表中定義的所有規(guī)則。

var allRules = [];
var sSheetList = document.styleSheets;
for (var sSheet = 0; sSheet < sSheetList.length; sSheet++)
{
    var ruleList = document.styleSheets[sSheet].cssRules;
    for (var rule = 0; rule < ruleList.length; rule ++)
    {
       allRules.push( ruleList[rule].selectorText );
    }
}

然而,事實(shí)是它包含了所有的規(guī)則,不管是類、標(biāo)簽、id還是其他什么..

您需要更詳細(xì)地解釋您希望非類規(guī)則(或組合規(guī)則)發(fā)生什么

您在document . style sheets(https://developer.mozilla.org/en/DOM/document.styleSheets)方面進(jìn)展順利

https://developer.mozilla.org/en/DOM/stylesheet.cssRules

在Firefox + Firebug中,這里有一個(gè)快速而簡(jiǎn)單的方法將所有的類selectorTexts輸出到控制臺(tái)。

var currentSheet = null;
    var i = 0;
    var j = 0;
    var ruleKey = null;

    //loop through styleSheet(s)
    for(i = 0; i<document.styleSheets.length; i++){
        currentSheet = document.styleSheets[i];

        ///loop through css Rules
        for(j = 0; j< currentSheet.cssRules.length; j++){

            //log selectorText to the console (what you're looking for)
            console.log(currentSheet.cssRules[j].selectorText);

            //uncomment to output all of the cssRule contents
            /*for(var ruleKey in currentSheet.cssRules[j] ){
                 console.log(ruleKey +': ' + currentSheet.cssRules[j][ruleKey ]);
            }*/
        }
    }

除了作為重構(gòu)過(guò)程的一部分,這可能不是你真正想做的事情,但這里有一個(gè)函數(shù)應(yīng)該做你想做的事情:

function getClasses() {
    var classes = {};
    // Extract the stylesheets
    return Array.prototype.concat.apply([], Array.prototype.slice.call(document.styleSheets)
        .map(function (sheet) {
            if(null == sheet || null == sheet.cssRules) return;
            // Extract the rules
            return Array.prototype.concat.apply([], Array.prototype.slice.call(sheet.cssRules)
                .map(function(rule) {
                    // Grab a list of classNames from each selector, making sure a selectorText exists (will throw errors otherwise on Media Queries)
                    return (rule.selectorText && rule.selectorText.match(/\.[\w\-]+/g)) || [];
                })
            );
        })
    ).filter(function(name) {
        // Reduce the list of classNames to a unique list
        return !classes[name] && (classes[name] = true);
    });
}

怎么樣

。一些事情。其他_什么?

你想要一個(gè)已經(jīng)存在的類名池嗎?還是一群選擇者?

不管怎樣,你有沒(méi)有嘗試過(guò)遍歷document.styleSheets[i]。cssRules?它給出了選擇器文本。用一些正則表達(dá)式來(lái)解析應(yīng)該更容易...

需要跨瀏覽器嗎?

您可以用jQuery來(lái)完成這個(gè)任務(wù)。例如

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script>
  $(document).ready(function(){
      var allobjects = $("*")
  });
</script>

查看jQuery網(wǎng)站:http://api.jquery.com/all-selector/