如何在jQuery中检索多级所有子元素的类名?

3

我想获取多层子元素的类名。我正在尝试以下方法,但它只能给出最后一层子元素的类名。我做错了什么?

    <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>
1个回答

3

您可以使用.map()更简单地获取名称的快速数组,如下所示:

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

这里可以进行测试

如果你想要一个字符串,你只需要使用arrayOfClassNames.join('')...或者你想要怎样使用都可以。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接