Используйте JavaScript для подсчета непосредственных дочерних элементов элемента - PullRequest
9 голосов
/ 16 апреля 2011

Я могу получить количество всех потомков элемента, но, похоже, я не могу ориентироваться только на немедленных детей.Вот что у меня есть на данный момент.

var sectionCount = document.getElementById("window").getElementsByTagName("section").length;

Я играл с другими вещами и с другим синтаксисом, но, похоже, не могу его получить.

Эквивалентом jQuery будет:

var sectionCount = $("#window > section").length;

Но мне нужно сделать только этот JavaScript.

1 Ответ

15 голосов
/ 16 апреля 2011

Используйте интерфейс селектора DOM ( querySelectorAll ).

var selectionCount = document.querySelectorAll("#window > section").length;

Если вы хотите получить обратно совместимое решение, выполните цикл по childNodes и подсчитайте количество элементов.

var w = document.getElementById('window');
var count = 0; // this will contain the total elements.
for (var i = 0; i < w.childNodes.length; i++) {
    var node = w.childNodes[i];
    if (node.nodeType == Node.ELEMENT_NODE && node.nodeName == "SECTION") {
        count++;
    }
}
...