ParentNode.childElementCount

読み取り専用の ParentNode.childElementCount プロパティは、与えられた要素の子要素の数を表す unsigned long 値を返します。

このプロパティは、当初 ElementTraversal 基本インターフェースで定義されていました。このインターフェースには 2 セットの異なるプロパティが含まれており、一つは子要素を持つ Node を対象とし、もう一つはその子要素群を対象としたものでしたが、これらは 2 つの基本インターフェースである ParentNodeChildNode に移されました。この際、childElementCountParentNode へ移されました。これは技術的な変更であり、互換性に影響を与えるものではありません。

構文

var count = node.childElementCount;
count
unsigned long 型(つまり整数型)の戻り値.
node
DocumentDocumentFragmentElementを表現するオブジェクト.

var foo = document.getElementById('foo');
if (foo.childElementCount > 0) {
  // Do something
}

IE8, IE9/Safari向けの互換コード

このプロパティは IE9 より前のバージョンでサポートされていません。IE9とSafariでは DocumentDocumentFragment においてサポートされていません。

;(function(constructor) {
  if (constructor &&
      constructor.prototype &&
      constructor.prototype.childElementCount == null) {
    Object.defineProperty(constructor.prototype, 'childElementCount', {
      get: function() {
        var i = 0, count = 0, node, nodes = this.childNodes;
        while (node = nodes[i++]) {
          if (node.nodeType === 1) count++;
        }
        return count;
      }
    });
  }
})(window.Node || window.Element);

仕様

仕様書 状況 コメント
DOM
ParentNode.childElementCount の定義
現行の標準 ElementTraversal インターフェースを ChildNodeParentNode に分割。このメソッドは後者で定義されています。
DocumentDocumentFragment が新しいインターフェースを実装しました。
Element Traversal Specification
ElementTraversal.childElementCount の定義
廃止 この初期定義は ElementTraversal 基本インターフェースに追加され、Element で使用します。

ブラウザの実装状況

No compatibility data found for api.ParentNode.childElementCount.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.

関連情報