JavaScript nextSibling 属性

Anika Tabassum Era 2024年2月15日
  1. 在 JavaScript 中使用 nextSibling 属性获取元素节点
  2. 在 JavaScript 中使用 nextSibling 属性获取文本节点
JavaScript 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 属性不会忽略任何节点。

Anika Tabassum Era avatar Anika Tabassum Era avatar

Era is an observer who loves cracking the ambiguos barriers. An AI enthusiast to help others with the drive and develop a stronger community.

LinkedIn Facebook

相关文章 - JavaScript Property