2010-11-02 59 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); 
相关问题