2010-12-02 55 views
2

我想检索多个级别的子元素的类名称。我正在尝试跟随,但它只给出了后方子元素的类名。我究竟做错了什么 ?如何检索jquery中多个级别的所有子元素的类名?

<script type="text/javascript"> 
    $(document).ready(function(){ 
    thisP=$("#myParagraph"); 
    getChildStyles(thisP); 
    //function 
function getChildStyles(thisobj) { 
var classNames; 
var classNames1; 
$(thisobj).children().each(function(){ 
    classNames+=$(this).attr('class'); 
    if($(this).children().length>0) { 
      classNames1+=getChildStyles($(this)); 
     } 
     classNames+=classNames1;   
    }); 
    return classNames; 
} 
}); 
</script> 

和HTML,

<ul id="myParagraph" class"mainUL"> 
    <li id="LIOne">ksjdfhsdf</li> 
    <li id="LITwo">skdjfkdsf<span class"span1Class"><span class="span2class"></span> 
    </span></li> 
    <li id="LIThree" class="thirdLIClass">edroiutret</li> 
    </ul> 

回答

2

可以使用.map(),这样得到的名称简单一点的快速阵列:

$(document).ready(function(){ 
    var arrayOfClassNames = $("#myParagraph").find("[class]").map(function() { 
    return this.className; 
    }).get(); 
}); 

You can test it out here

如果你想要一个字符串,你可以只做arrayOfClassNames.join('') ...或者你想真的使用它。

相关问题