2010-12-02 2 views
2

子要素のクラス名を複数のレベルで取得したい。私は次のことを試みていますが、それは後部の子要素のクラス名しか与えません。私は間違って何をしていますか?jqueryで複数のレベルにあるすべての子要素のクラス名を取得するにはどうすればいいですか?

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

You can test it out here:あなたはこのような.map()を使用して少しシンプルな名前の迅速な配列を取得することができます

<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

文字列が必要な場合は、arrayOfClassNames.join('')を実行してもかまいませんが、実際に使用したいことがあります。

関連する問題