2010-02-12 8 views
12

div 요소에 포함 된 div 요소의 수를 계산하는 방법은 javascript를 사용하는 것입니까?자바 스크립트를 사용하여 다른 div 안에 div 수를 계산하는 방법

+0

당신이 jQuery를 태그를 포함하지 않을 때 당신은 (나도의 종류) 자바 스크립트 개발자를 많이 걸러! – alex

+1

@alex : 그래서 뭐라구? 이것은 jQuery와는 아무런 관련이 없습니다. OP는 jQuery를 사용할 수있는 상황에 있지 않을 수도 있고 실제로 jQuery를 사용하고 싶지 않을 수도 있습니다. 솔직히 jQuery가 아닌 질문에 대해서는 JavaScript가 아닌 jQuery로 태그 된 질문 만 보는 사람들의 도움이 필요하지 않습니다. –

+0

아, 알아요. 그냥 말하기 ... – alex

답변

19

getElementsByTagName()document 메서드 일뿐만 아니라 모든 DOM 요소에서 실행할 수있는 메서드입니다.

요소. getElementsByTagName과 유사한 입니다. getElementsByTagName, 자사의 검색

표시되는 지정된 요소의 후손들 요소로 제한된다 제외하고는 더이 무엇을 물어 않도록 https://developer.mozilla.org/en/DOM/element.getElementsByTagName


실제 코드에서

var container_div = document.getElementById('id_of_container_div'); 
var count = top_level_div.getElementsByTagName('div').length; 
+1

getElementsByTagName은 Gecko 엔진을 사용하는 브라우저가 아닌 브라우저에서는 사용할 수 없습니다. IE6에서 사용해보십시오. – amphetamachine

+3

은 IE6에서 잘 작동합니다. –

+0

'getElementsByTagName'이 IE6에 있었습니까? – alex

0

많은 방법으로 상담 할 수 있습니다. jquery를 사용하여 요소를 divs합니다.

그러나 가장 인기있는 간단한 방법은 다음과 같습니다

$(document).ready(function(){ 
    var divCount = $("div").size(); 
    alert(divCount); 
}); 

$(document).ready(function(){ 
    var divCount = $("div").length; 
    alert(divCount); 
}); 

그것의 도움에 대한 당신

1
당신은 davidcmoulton의 편리한 요점 @ 사용할 수 있습니다

: https://gist.github.com/davidcmoulton/a76949a5f35375cfbc24

I 아주 유용하다는 것을 알지 못한다. DIV 수만 계산하고 페이지의 모든 요소 유형 수를 나열합니다. 여기

추가 참조를 위해 요점의 사본입니다 :

(function (window, undefined) { 
// Counts all DOM elements by name & logs resulting object to console. 
var forEach = Array.prototype.forEach, 
counter = {}, 

incrementElementCount = function (elementName) { 
    if (counter.hasOwnProperty(elementName)) { 
    counter[elementName] += 1; 
    } else { 
    counter[elementName] = 1; 
    } 
}, 

processNode = function (node) { 
    var currentNode = node; 
    if (currentNode.nodeType === currentNode.ELEMENT_NODE) { 
    incrementElementCount(currentNode.nodeName); 
    if (currentNode.hasChildNodes) { 
     forEach.call(currentNode.childNodes, function (childNode) { 
     if (childNode.nodeType === currentNode.ELEMENT_NODE) { 
      processNode(childNode); 
     } 
     }); 
    } 
    } 
}; 

processNode(window.document.firstElementChild); 

console.log(counter); 

}(this)); 
관련 문제