JavaScript >> Javascript 文檔 >  >> JavaScript

如何使用 JavaScript 獲取元素的子元素

要獲取元素的所有子節點,可以使用 childNodes 財產。此屬性返回節點子節點的集合,作為 NodeList 對象。

默認情況下,集合中的節點按其在源代碼中的外觀排序。您可以使用數字索引(從 0 開始)來訪問各個節點。

假設您有以下 HTML 代碼:

<ul id="langs">
    <li>JavaScript</li>
    <li>Node</li>
    <li>Java</li>
    <li>Ruby</li>
    <li>Rust</li>
</ul>

以下示例選擇 <ul> 的所有子節點 標記並打印它們的內容:

const ul = document.querySelector('#langs');

// get all children
const childern = ul.childNodes;

// iterate over all child nodes
childern.forEach(li => {
    console.log(li.innerText);
});

下面是輸出的樣子:

undefined
JavaScript
undefined
Node
undefined
Java
undefined
Ruby
undefined
Rust
undefined

等等,為什麼是 undefined 出現在輸出中?

這是因為元素內部的空白被視為文本,而文本被視為節點。它也適用於被視為節點的評論。

如果您想排除註釋和文本節點 , 使用 children 而是財產。此屬性僅返回節點元素節點的集合,作為 HTMLCollection 對象:

const children = ul.children;

// iterate over all child nodes
Array.from(children).forEach(li => {
    console.log(li.innerText);
});

現在的輸出如下所示:

JavaScript
Node
Java
Ruby
Rust

為了獲取元素的第一個和最後一個子元素,JavaScript 提供了 firstChildlastChild 屬性:

const ul = document.querySelector('#langs');

// get first children
const firstChild = ul.firstChild;

// get last children
const lastChild = ul.lastChild;

Tutorial JavaScript 教程
  1. 如何根據容器中的內容(數字和字符串)調整字體大小?

  2. 確認對話框在 Firefox Quantum 上不起作用

  3. 片段

  4. 您可以從 Node.js 10 中獲得什麼

  5. JavaScript Getter 和 Setter 簡介👓

  6. MACBOOK PRO,2 端口與 4 端口。哪個更好,哪個不那麼熱?

  7. 我無法將機器人的斜杠命令推送到數組。為什麼?

  1. 代理組件

  2. 使用 VuePress 構建文檔網站

  3. 如何使用 JavaScript 創建 NFT

  4. 為什麼我選擇 ReactJs 和 React Native(用於混合應用程序開發)。

  5. .Net Core Razor 頁面應用程序的 DataTable.js 教程 - 第 2 部分 - 完整的 CRUD

  6. 類型註釋(又名,作為註釋的類型):強類型,弱持有

  7. 可訪問的待辦事項應用程序

  1. 安卓網頁開發!

  2. Node.js SQLite:使用 Express 逐步構建簡單的 REST API

  3. 如何使用 Nightwatch.js 為您的網站自動化測試? - 第 2 部分 - 寫作測試

  4. Javascript 中的 LHS 和 RHS 引用?像編譯器一樣思考!