2014-10-10 124 views
1

如何查找在JavaScript中使用的子元素的最大數量?查找childrenparent元素

<div> 
    <div> 
    <div> 
    <div></div> 
    </div> 
    </div> 
</div> 

<div> 
    <div> 
</div> 
</div> 

<div> 
    <div> 
    <div> 
     <div> 
     <div></div> 
     </div> 
    </div> 
    </div> 
</div> 

答最大元素:4

+0

這個問題還不清楚。你想要DOM的最大深度? – Alnitak 2014-10-10 08:32:24

+0

使用dokument.getElementsByTagName.But獲取所有div元素,然後如何遍歷每個元素? – 2014-10-10 08:35:17

回答

0
<div id = "a"> 
    <div> 
     <div> 
     <div> 
     <div></div> 
     </div> 
     </div> 
    </div> 

    <div> 
     <div> 
    </div> 
    </div> 

    <div> 
     <div> 
     <div> 
      <div> 
      <div></div> 
      </div> 
     </div> 
     </div> 
    </div> 
</div> 

<script type="text/javascript"> 

function getMaxChildrenCount(element) { 
    var Max = { value: 0, i: -1 }; 

    (function getMaxChildren(element, Max) { 
     var Childred = element.childNodes; 
     Max.i++; 
     for(var i = 0; i < Childred.length; i++) { 
      getMaxChildren(Childred[i], Max); 
     } 
     Max.i--; 
     if(Max.i > Max.value) Max.value = Max.i; 
    })(element, Max); 

    return Max.value; 
} 

console.log(getMaxChildrenCount(document.getElementById('a'))); 

</script> 
0

好可能會有所幫助:

<div class="bla"> 
     <div> 
     <div> 
     <div></div> 
     </div> 
     </div> 
    </div> 

    <div class="bla"> 
     <div> 
    </div> 
    </div> 

    <div class="bla"> 
     <div> 
     <div> 
      <div> 
      <div></div> 
      </div> 
     </div> 
     </div> 
    </div> 

$('.bla').each(function(){ 
var count = $(this).find('*').length; 
}) 

希望你能繼續)

UPD:

var elm = document.getElementsByClassName('bla'); 
for(var i = 0; i < elm.length; i++){ 
    var count = elm[i].getElementsByTagName('*').length; 
} 
+1

'$('bla')'中缺少一個點。 – 2014-10-10 08:32:50

+0

不使用jquery。 – 2014-10-10 08:32:51

+0

如果你不給ID和班級成員,你可以指望?那麼也許你需要使用childNodes吧? – 2014-10-10 08:43:08