Để đếm tất cả các yếu tố hậu duệ bao gồm các yếu tố lồng nhau trong javascript đơn giản, có một số lựa chọn:
Cách đơn giản nhất có lẽ là đây:
var count = parentElement.getElementsByTagName("*").length;
Nếu bạn muốn tự do quảng cáo d sự kiện khác luận xung quanh những gì bạn đếm, bạn có thể recurse qua cây địa phương như thế này:
function countDescendantElements(parent) {
var node = parent.firstChild, cnt = 0;
while (node) {
if (node.nodeType === 1) {
cnt++;
cnt += countDescendantElements(node);
}
node = node.nextSibling;
}
return(cnt);
}
Working Demo: http://jsfiddle.net/jfriend00/kD73F/
Nếu bạn chỉ muốn đếm con trực tiếp (mức không sâu) và chỉ muốn đếm các nút phần tử (không phải nút văn bản hoặc nhận xét) và muốn hỗ trợ trình duyệt rộng, bạn có thể thực hiện việc này:
function countChildElements(parent) {
var children = parent.childNodes, cnt = 0;
for (var i = 0, len = children.length; i < len; i++) {
if (children[i].nodeType === 1) {
++cnt;
}
}
return(cnt);
}
[this] (http://stackoverflow.com/questions/10381296/best-way-to-get -con-nút) có thể hữu ích –