
- JavaScript 基礎教程
- JavaScript - 首頁
- JavaScript - 路線圖
- JavaScript - 概述
- JavaScript - 特性
- JavaScript - 啟用
- JavaScript - 位置
- JavaScript - 語法
- JavaScript - Hello World
- JavaScript - Console.log()
- JavaScript - 註釋
- JavaScript - 變數
- JavaScript - let 語句
- JavaScript - 常量
- JavaScript - 資料型別
- JavaScript - 型別轉換
- JavaScript - 嚴格模式
- JavaScript - 保留關鍵字
- JavaScript 運算子
- JavaScript - 運算子
- JavaScript - 算術運算子
- JavaScript - 比較運算子
- JavaScript - 邏輯運算子
- JavaScript - 位運算子
- JavaScript - 賦值運算子
- JavaScript - 條件運算子
- JavaScript - typeof 運算子
- JavaScript - 空值合併運算子
- JavaScript - delete 運算子
- JavaScript - 逗號運算子
- JavaScript - 分組運算子
- JavaScript - yield 運算子
- JavaScript - 展開運算子
- JavaScript - 指數運算子
- JavaScript - 運算子優先順序
- JavaScript 控制流
- JavaScript - if...else
- JavaScript - while 迴圈
- JavaScript - for 迴圈
- JavaScript - for...in
- JavaScript - for...of
- JavaScript - 迴圈控制
- JavaScript - break 語句
- JavaScript - continue 語句
- JavaScript - switch case
- JavaScript - 使用者自定義迭代器
- JavaScript 函式
- JavaScript - 函式
- JavaScript - 函式表示式
- JavaScript - 函式引數
- JavaScript - 預設引數
- JavaScript - Function() 建構函式
- JavaScript - 函式提升
- JavaScript - 自執行函式
- JavaScript - 箭頭函式
- JavaScript - 函式呼叫
- JavaScript - Function call()
- JavaScript - Function apply()
- JavaScript - Function bind()
- JavaScript - 閉包
- JavaScript - 變數作用域
- JavaScript - 全域性變數
- JavaScript - 智慧函式引數
- JavaScript 物件
- JavaScript - Number
- JavaScript - Boolean
- JavaScript - String
- JavaScript - Array
- JavaScript - Date
- JavaScript - DataView
- JavaScript - Handler
- JavaScript - Math
- JavaScript - RegExp
- JavaScript - Symbol
- JavaScript - Set
- JavaScript - WeakSet
- JavaScript - Map
- JavaScript - WeakMap
- JavaScript - 可迭代物件
- JavaScript - Reflect
- JavaScript - TypedArray
- JavaScript - 模板字面量
- JavaScript - 標籤模板
- 面向物件的 JavaScript
- JavaScript - 物件
- JavaScript - 類
- JavaScript - 物件屬性
- JavaScript - 物件方法
- JavaScript - 靜態方法
- JavaScript - 顯示物件
- JavaScript - 物件訪問器
- JavaScript - 物件建構函式
- JavaScript - 原生原型
- JavaScript - ES5 物件方法
- JavaScript - 封裝
- JavaScript - 繼承
- JavaScript - 抽象
- JavaScript - 多型
- JavaScript - 解構賦值
- JavaScript - 物件解構
- JavaScript - 陣列解構
- JavaScript - 巢狀解構
- JavaScript - 可選鏈
- JavaScript - 全域性物件
- JavaScript - Mixin
- JavaScript - Proxy
- JavaScript 版本
- JavaScript - 歷史
- JavaScript - 版本
- JavaScript - ES5
- JavaScript - ES6
- ECMAScript 2016
- ECMAScript 2017
- ECMAScript 2018
- ECMAScript 2019
- ECMAScript 2020
- ECMAScript 2021
- ECMAScript 2022
- JavaScript 非同步程式設計
- JavaScript - 非同步程式設計
- JavaScript - 回撥函式
- JavaScript - Promise
- JavaScript - Async/Await
- JavaScript - 微任務
- JavaScript - Promise 化
- JavaScript - Promise 鏈式呼叫
- JavaScript - 定時事件
- JavaScript - setTimeout()
- JavaScript - setInterval()
- JavaScript Cookie
- JavaScript - Cookie
- JavaScript - Cookie 屬性
- JavaScript - 刪除 Cookie
- JavaScript 瀏覽器 BOM
- JavaScript - 瀏覽器物件模型
- JavaScript - Window 物件
- JavaScript - Document 物件
- JavaScript - Screen 物件
- JavaScript - History 物件
- JavaScript - Navigator 物件
- JavaScript - Location 物件
- JavaScript - Console 物件
- JavaScript Web APIs
- JavaScript - Web API
- JavaScript - History API
- JavaScript - Storage API
- JavaScript - Forms API
- JavaScript - Worker API
- JavaScript - Fetch API
- JavaScript - Geolocation API
- JavaScript 事件
- JavaScript - 事件
- JavaScript - DOM 事件
- JavaScript - addEventListener()
- JavaScript - 滑鼠事件
- JavaScript - 鍵盤事件
- JavaScript - 表單事件
- JavaScript - Window/Document 事件
- JavaScript - 事件委託
- JavaScript - 事件冒泡
- JavaScript - 事件捕獲
- JavaScript - 自定義事件
- JavaScript 錯誤處理
- JavaScript - 錯誤處理
- JavaScript - try...catch
- JavaScript - 除錯
- JavaScript - 自定義錯誤
- JavaScript - 擴充套件錯誤
- JavaScript 重要關鍵字
- JavaScript - this 關鍵字
- JavaScript - void 關鍵字
- JavaScript - new 關鍵字
- JavaScript - var 關鍵字
- JavaScript HTML DOM
- JavaScript - HTML DOM
- JavaScript - DOM 方法和屬性
- JavaScript - DOM Document
- JavaScript - DOM 元素
- JavaScript - DOM 屬性 (Attr)
- JavaScript - DOM 表單
- JavaScript - 修改 HTML
- JavaScript - 修改 CSS
- JavaScript - DOM 動畫
- JavaScript - DOM 導航
- JavaScript - DOM 集合
- JavaScript - DOM NodeList
- JavaScript - DOM DOMTokenList
- JavaScript 其他
- JavaScript - Ajax
- JavaScript - 非同步迭代
- JavaScript - Atomics 物件
- JavaScript - rest 引數
- JavaScript - 頁面重定向
- JavaScript - 對話方塊
- JavaScript - 頁面列印
- JavaScript - 驗證
- JavaScript - 動畫
- JavaScript - 多媒體
- JavaScript - 圖片地圖
- JavaScript - 瀏覽器
- JavaScript - JSON
- JavaScript - 多行字串
- JavaScript - 日期格式
- JavaScript - 獲取日期方法
- JavaScript - 設定日期方法
- JavaScript - 模組
- JavaScript - 動態匯入
- JavaScript - BigInt
- JavaScript - Blob
- JavaScript - Unicode
- JavaScript - 淺複製
- JavaScript - 呼叫棧
- JavaScript - 引用型別
- JavaScript - IndexedDB
- JavaScript - 點選劫持攻擊
- JavaScript - 柯里化
- JavaScript - 圖形
- JavaScript - Canvas
- JavaScript - 防抖
- JavaScript - 效能
- JavaScript - 樣式指南
JavaScript - DOM 集合
DOM 集合
DOM(文件物件模型)集合是一種將相關的 HTML 元素組合在一起的方法。它們是隻讀的,可以使用 DOM 物件(例如 document 物件或 DOM 節點)的屬性來訪問。
有許多不同型別的 DOM 集合,包括:
HTMLCollection 物件是 HTML 元素的類似陣列的列表(集合)。
NodeList 物件是從文件中提取的節點列表(集合)。
HTML DOM 中的表單元素集合用於設定或返回表單元素內所有 <input> 元素的集合。
HTML DOM 表單集合用於將 HTML 文件中存在的所有表單元素作為集合返回。
DOM 集合可以用於執行各種任務,例如:
遍歷 DOM
新增、刪除或修改元素
更改元素的樣式或內容
響應使用者事件
本教程提供對 DOM 集合,特別是 HTMLCollection 物件的基本理解。其他型別的 DOM 集合將在接下來的章節中討論。
HTMLCollection 物件
HTMLCollection 物件是 HTML 元素的類似陣列的資料結構。當您使用 getElementByTagName() 方法訪問 DOM 元素時,它將返回一個 HTMLCollection 物件。
它與陣列類似,但不是陣列。您可以遍歷 HTML 集合並透過索引訪問每個 HTML 元素,但不能對 HTML 集合使用 pop()、push() 等方法。
以下方法和屬性返回 HTML 集合。
DOM HTMLCollection 物件的屬性和方法
這裡,我們列出了可以與 HTML 集合一起使用的屬性和方法。
方法/屬性 | 描述 |
---|---|
length | 獲取集合中 HTML 元素的數量。 |
item() | 從特定索引獲取元素。 |
namedItem() | 使用其 id 從給定集合中獲取 HTML 元素。 |
示例:遍歷集合元素
在下面的程式碼中,我們添加了數字列表。
在 JavaScript 中,我們使用 getElementByTagName() 方法訪問所有 <li> 元素,該方法返回 HTML 集合。
之後,我們使用for...of迴圈遍歷每個HTML元素。集合中包含物件格式的每個HTML元素。我們使用每個集合元素的innerHTML屬性獲取其HTML並將其列印到網頁上。
<DOCTYPE html> <html> <body> <ul> <li> One </li> <li> Two </li> <li> Three </li> </ul> <div id = "output"> </div> <script> const output = document.getElementById('output'); let lists = document.getElementsByTagName('li'); for (let list of lists) { output.innerHTML += "inner HTML - " + list.innerHTML + "<br>"; } </script> </body> </html>
示例:獲取集合的長度
在下面的程式碼中,我們使用集合的“length”屬性來獲取集合中元素的數量。
<DOCTYPE html> <html> <body> <div class = "text"> JavaScript </div> <div class = "text"> HTML </div> <div class = "text"> CSS </div> <div class = "text"> CPP </div> <div id = "output">The length of the collection is: </div> <script> const divs = document.getElementsByClassName('text'); document.getElementById('output').innerHTML += " " + divs.length; </script> </body> </html>
示例:使用namedItem方法與集合
在下面的程式碼中,我們使用getElementByClassName()方法訪問所有<div>元素,返回<div>元素的集合。
之後,我們使用namedItem()方法訪問id等於“JavaScript”的<div>元素。
<DOCTYPE html> <html> <body> <div class = "text" id = "JavaScript"> JavaScript </div> <div class = "text" id = "PHP"> PHP </div> <div class = "text" id = "Python"> Python </div> <div class = "text" id = "Java"> Java </div> <div id = "output">The Element having id equal to JavaScript is: </div> <script> const output = document.getElementById('output'); const langs = document.getElementsByClassName('text'); output.innerHTML += langs.namedItem('JavaScript').innerHTML; </script> </body> </html>
文件物件和DOM元素的集合
文件物件包含一些內建集合,用於從文件中獲取元素。
在下表中,我們列出了可以使用文件物件訪問的所有集合。
集合名稱 | 描述 |
---|---|
document.links | 獲取文件中的所有<a>元素。 |
document.forms | 獲取文件中的所有<form>元素。 |
document.images | 獲取文件中的所有<img>元素。 |
document.scripts | 獲取文件中的所有<script>元素。 |
document.styleSheets | 獲取文件中的所有<link>和<style>元素。 |
Element.children | 獲取特定HTML元素的所有子元素的集合。 |
element.attributes | 獲取給定元素的所有屬性的集合。 |
element.options | 獲取文件中的所有<option>元素。 |
element.classList | 獲取特定DOM元素的類名集合。 |