Node: firstChild 屬性

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Node 介面的只讀 firstChild 屬性返回節點在樹中的第一個子節點,如果沒有子節點則返回 null

如果節點是 Document,則此屬性返回其直接子節點列表中的第一個節點。

注意:此屬性返回其作為第一個子節點的任何型別的節點。它可能是 Text 節點或 Comment 節點。如果你想獲取作為另一個元素子節點的第一個 Element,請考慮使用 Element.firstElementChild

一個 Node,如果沒有則為 null

示例

此示例演示了 firstChild 的用法以及空格節點可能如何幹擾此屬性的使用。

html
<p id="para-01">
  <span>First span</span>
</p>
js
const p01 = document.getElementById("para-01");
console.log(p01.firstChild.nodeName);

在上面,控制檯將顯示“#text”,因為插入了一個文字節點以保持起始 <p><span> 標籤之間的空白。任何 空白字元都會建立一個 #text 節點,從單個空格到多個空格、換行符、製表符等。

另一個 #text 節點被插入到閉合的 </span></p> 標籤之間。

如果從原始碼中刪除了這些空白字元,則不會插入 #text 節點,並且 span 元素將成為段落的第一個子節點。

html
<p id="para-01"><span>First span</span></p>
js
const p01 = document.getElementById("para-01");
console.log(p01.firstChild.nodeName);

現在控制檯將顯示“SPAN”。

為避免 node.firstChild 返回 #text#comment 節點的問題,可以使用 Element.firstElementChild 來僅返回第一個元素節點。

規範

規範
DOM
# ref-for-dom-node-firstchild①

瀏覽器相容性

另見