2010-11-02 78 views
2

我需要一個javascript函數,可以讓我把所有CSS類應用到元素。是否有可能將所有全局/繼承css類應用於元素?

我們分別具有像getComputedStyle(element,「」)和currentStyle(),FF和IE這樣的函數。 但是,這些函數只給我應用於元素的CSS屬性,而不是類。

爲了使事情更清楚,請參閱以下DOM結構。

<html> 
<head> 
<style> 
.dd{ 
    font-weight:bold; 
} 
.dd span{ 
    border:solid 1px #ABABAB; 
} 
</style> 
</head> 
<body> 
    <div class='dd'> 
    <span id='span1'>Hi this is a example</span> 
    </div> 
</body> 
</html> 

現在JavaScript應該是什麼,如果我得到元素'span1'它應該給我所有應用於此元素的類。說的輸出應該給我「.DD跨度和.DD」

回答

0
document.getElementById('span1').className; 

,您可以使用.parentNode獲得各種父類。

而且,如果你給最頂層的父position風格,你可以這樣做:

var topmost = document.getElementById('span1').offsetParent; 

for(var x = 0; x < topmost.childNodes.length;x++) { 
    alert(topmost.childNodes[x].className); 
} 

//編輯

它看起來就像你正在試圖做的事情Firebug的類型。這裏的很多用戶都嘗試過。一個好的搜索可能會帶你到你從未夢想過的東西...... muhahahaha ......

+0

史蒂夫, 我其實是在尋找功能的構建,將返回我calsses的列表。我在網上搜索,沒有發現任何東西。 – hirenhcm 2010-11-02 18:12:04

0

作爲Steve的答案的延續,你可以循環遍歷父節點並列出每個父節點的類名。

var listClasses = function(element){ 
    while(element){ 
     console.log(element.className); 
     element = element.parentNode; 
    } 
} 

使用:

listClasses(target); 
相關問題