JavaScript >> Javascript 文檔 >  >> JavaScript

如何使用 JavaScript 獲取元素的第一個和最後一個子元素

要獲取 HTML 元素的第一個子節點,可以使用 firstChild 財產。此屬性返回節點的第一個子節點,作為 Node 對象。

假設您有以下 HTML 代碼片段:

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

以下示例選擇第一個 <li> 使用 firstChild 元素 屬性:

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

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

console.log(first.innerText);

您可能會遇到 firstChild 的奇怪行為 如果父節點和第一個子節點之間有空格。

例如,上面的代碼片段可能會打印 undefined 在控制台上。這是因為元素內部的空白被視為文本,而文本被視為節點。

處理這種情況的一種方法是刪除元素之間的所有空格。或者,您可以使用 firstElementChild 忽略空格和註釋並返回第一個元素節點的屬性:

// get first element node
const first = ul.firstElementChild;

console.log(first.innerText); // JavaScript

要返回指定節點的最後一個子節點,請使用 lastChild 屬性:

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

// get last child
const last = ul.firstChild;

console.log(last.innerText);

同樣,還有一個名為 lastElementChild 的屬性 通過忽略所有空格和註釋來獲取最後一個元素節點:

const last = ul.lastElementChild;

console.log(last.innerText); // Rust

如果要獲取元素的所有子節點,請使用 childNodeschildren 屬性:

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

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

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

看看這篇文章了解更多childNodeschildren JavaScript 中的屬性。


Tutorial JavaScript 教程
  1. 奇怪的 JavaScript 類型系統 - typeof 和 NaNs

  2. 用 JavaScript 字符串中的單個空格替換多個空格

  3. 反應式 - Virtual DOM 和 DOM Diffing 的使用

  4. 如何使用 npm 工作區、webpack 和 create-react-app 創建 react monorepo

  5. 快速深入了解 ES6

  6. Vue 3 中 SSR 友好的唯一 HTML ID

  7. 用於使用 Next.js 創建主題應用程序的庫

  1. JQuery onclick改變z-index

  2. 反應 JS 標誌 |純 CSS

  3. 構建機器人 (DiscordJS) - 更好的日誌記錄和持久的機器人配置

  4. 反應修訂

  5. Next.js 中的狀態管理

  6. 回顧 2021 年 — Kinsta 年度回顧

  7. 我如何使用 Codemod 節省了 4 個月的代碼庫遷移工作✨

  1. WebSocket 和反應

  2. 使用 Reactjs 創建鋼琴 - Audio() WebAPI 和 Hooks

  3. 5 條關於 MongoDB 模式建模的快速規則

  4. 真在 JavaScript 中並不總是真