HOWTO · JavaScript

JavaScript nextSibling 屬性

JavaScript 屬性 nextSibling 允許在某個節點元素之後顯示以下節點。該節點可以是元素節點、文字節點或評論節點。具體來說,nextSibling 屬性不會忽略中間的任何節點,而是從上到下抓取序列。

本頁內容

在 JavaScript 中,我們有 nextSiblingnextElementSibling 屬性。從技術上講,兩者具有相似的功能,但 nextSibling 在定義節點時更加明確。

nextSibling 屬性獲取某個指定節點的下一個節點。在這種情況下,節點可以是元素節點、文字節點或註釋節點,但 nextElementSibling 只專注於抓取元素節點並丟棄所有其他字元、空格等。

在這裡,我們將只視覺化 nextSibling 屬性如何執行以及即將到來的節點的檢索。這個總體任務是跟蹤 HTML 結構和更好的使用目的。

在 JavaScript 中使用 nextSibling 屬性獲取元素節點

我們將在以下示例中建立 3 個 p 標籤,每個標籤都有其 id。讓我們考慮一下 p 元素之間沒有任何空格或任何其他字元,只有裸標籤。

我們將獲取 script 標籤中的 first 元素,並檢查它在後面的案例中顯示的內容。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>test</title>
</head>
<body>
<p id="first">First</p><p id="second">Second</p><p id="third">Third</p>
  <script>
    console.log( document.getElementById('first').nextSibling.innerText);
    console.log( document.getElementById('first').nextSibling.nextSibling.innerText);
  </script>
</body>
</html>

輸出:

使用 nextSibling 屬性獲取元素節點

正如我們已經考慮過的第一個 p 標籤,緊鄰的下一個節點是 id="second"元素節點。類似地,我們通過對第一個節點使用兩次 nextSibling 屬性來安慰 "second" 旁邊的元素節點,即 "third"

在 JavaScript 中使用 nextSibling 屬性獲取文字節點

nextSibling 屬性考慮了元素節點、文字節點和評論節點。因此,如果我們可以檢測到任何文字節點和空格,nextSibling 屬性會將其計為下一次出現。

在我們的例子中,我們將一個接一個地設定 p 標籤,然後是一個空格。因此,我們將得到 undefined,它指的是單個空格、空格、&nbsp; 等等

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>test</title>
</head>
<body>
<p id="first">First</p>
<p id="second">Second</p>
<p id="third">Third</p>
  <script>
    console.log( document.getElementById('first').nextSibling.innerText);
    console.log( document.getElementById('first').nextSibling.nextSibling.innerText);
  </script>
</body>
</html>

輸出:

使用 nextSibling 屬性獲取文字節點

所以,第一個節點之後的下一個節點是一個文字節點,即 space,因此我們得到 undefined 作為輸出,下一個節點現在是"second"元素節點。這可以推斷出 nextSibling 屬性不會忽略任何節點。