--- title: Node.childNodes slug: Web/API/Node/childNodes translation_of: Web/API/Node/childNodes ---
Node.childNodes
唯讀屬性會回傳一個即時更新的動態集合(live collection),其包含了指定元素的子{{domxref("Node","節點")}},而第一個子節點會被指派為索引 0。
var ndList = elementNodeReference.childNodes;
ndList 是一個 {{domxref("NodeList")}},為一個有順序性、由目前元素之 DOM 子節點組成之集合。假如目前元素沒有子節點,則 ndList 會是空的。
範例
// parg is an object reference to a <p> element // First check that the element has child nodes if (parg.hasChildNodes()) { var children = parg.childNodes; for (var i = 0; i < children.length; i++) { // do something with each child as children[i] // NOTE: List is live, adding or removing children will change the list } }
// This is one way to remove all children from a node // box is an object reference to an element while (box.firstChild) { //The list is LIVE so it will re-index each call box.removeChild(box.firstChild); }
The items in the collection of nodes are objects and not strings. To get data from node objects, use their properties (e.g. elementNodeReference.childNodes[1].nodeName
to get the name, etc.).
The document
object itself has 2 children: the Doctype declaration and the root element, typically referred to as documentElement
. (In (X)HTML documents this is the HTML
element.)
childNodes
includes all child nodes, including non-element nodes like text and comment nodes. To get a collection of only elements, use {{ domxref("ParentNode.children") }} instead.