如何使用 JavaScript HTML DOM 定義節點列表中的節點數量?


在本教程中,我們將學習如何找到 JavaScript 中節點列表中存在的節點數量。要執行此特定操作,我們需要使用 HTML DOM,它可以幫助我們處理網頁的物件模型。

現在讓我們首先了解 HTML 中的節點和節點列表是什麼。HTML 文件中的所有內容,包括元素、文字、屬性以及整個文件,都是節點。HTML 文件中存在的每個小元素都是 HTML DOM 導航樹的一部分。

節點列表只不過是 HTML 文件中所有節點的集合。它由諸如 childNodes 之類的屬性以及 querySelectorAll() 方法返回。

語法

定義節點列表中節點數量的語法如下:

const var_name = document.querySelectorAll("tag_name");
var_name.length

現在我們將研究一個示例,在該示例中我們將使用段落節點的節點列表。

方法 1

在這種方法中,我們按照以下步驟使用 JavaScript HTML DOM 定義節點列表中的節點數量:

  • 建立一個段落標籤,並在其中寫入一些資料。

  • 建立另一個段落,並在其中寫入其他一些資料。

  • 現在建立第三個段落,但這次不包含任何資料,只包含一個 id。

  • 在 script 節點內建立一個名為“mylist”的常量變數。

  • 現在呼叫document.querySelectorAll()方法,並在其中包含 p 標籤。

  • 建立另一個名為 result 的變數,並在其中呼叫“mylist.length”屬性。

  • 在最後一步,使用一些文字列印 result 變數的值。

示例

我們可以使用以下程式碼來執行上述任務:

<!DOCTYPE html>
<html>
<body>
   <h2> Tutorials Point </h2>
   <p> First paragraph </p>
   <p> Second Paragraph </p>
   <p id="third"></p>
   <script>
      const mylist = document.querySelectorAll("p");
      let result = mylist.length;
      document.getElementById("third").innerHTML = " This is " + result + "rd paragraph. It means this document have "+result+" paragraphs";
   </script>
</body>
</html>

節點列表的行為非常類似於陣列,但它不是陣列,即某些陣列屬性在其上有效,而某些屬性則不適用,例如,我們可以迭代節點列表並可以使用索引號呼叫其值,但不能使用諸如 pop、delete 或新增元素之類的在陣列中使用的方法,當在節點列表上使用時,它會引發錯誤。

方法 2

讓我們研究另一種在 HTML DOM 中定義多個節點列表的方法。在這裡,我們將像陣列一樣迭代節點列表的每個元素並列印其值。

迭代節點列表的每個元素的步驟:

  • 建立 3 個段落標籤,並在每個標籤中寫一個語句。

  • 現在在 script 標籤內建立一個函式,並呼叫document.querySelectorAll()方法,並在其中包含 p 標籤。

  • 在其中建立一個 for 迴圈,使用“length”屬性遍歷節點列表。

  • 現在使用“style.color”屬性更改所有段落的顏色。

  • 最後,將建立的函式與我們在“body”標籤中建立的按鈕連線起來。

示例

我們可以使用以下程式碼來執行上述任務:

<!DOCTYPE html>
<html>
<body>
   <h2> Tutorials Point </h2>
   <p> This is first paragraph </p>
   <p> This is second paragraph </p>
   <p> This is third paragraph </p>
   <button onclick="myFunction()"> Press button to change color of paragraph element </button>
   <script>
      function myFunction() {
         const nodelist = document.querySelectorAll("p"); 
         for (let i = 0; i < nodelist.length; i++) {
            nodelist[i].style.color = "#29ab00";
         }
      }
   </script>
</body>
</html>

按下上面的按鈕後,所有段落標籤的顏色都會改變。

因此,在這個例子中,我們正在迭代節點列表的每個元素並相應地更改其顏色。

節點列表與 HTML 集合(文件元素的集合)非常相似,因為它們都表現出一些類似陣列的行為,並且兩者都透過從文件中提取一些資料來形成陣列,但它們之間也有一些區別,例如在 HTML 集合中,我們可以使用其名稱、索引或 ID 呼叫元素,但在節點列表中,我們只能使用其索引號呼叫元素。

更新於:2022-12-06

280 次瀏覽

啟動您的 職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.