語法:element = document.querySelector(selector)
程式碼拆解:
// 選取第一個 class 為 'example' 的 div 元素
const div = document.querySelector('div.example');
// 選取 id 為 'header' 的元素
const header = document.querySelector('#header');
// 選取所有 class 為 'example' 的 div 元素
const divs = document.querySelectorAll('div.example');
// 選取所有位於列表中的項目元素
const items = document.querySelectorAll('ul > li');
document.createElement(tagName):新增一個元素。
用textContent 寫入文字資料:
在JS中宣告一個變數,把變數指向到DOM網頁元素位置去。直接選取變數來更改網頁文字內容、並重新賦予值。
//JS部分
const el = document.querySelector('h1');
el.textContent = "hello world"; //寫法較簡潔
修改元素的內容:
語法:NODE.appendChild(Node)
parentElement.removeChild(NODE)
NODE.remove()
※ 樣式:classList,className和style。
說明:
classList: 這是一個元素的類別屬性的集合,提供了添加、刪除和切換CSS類別的方法。
className: 這是一個表示元素class屬性的字符串。可以直接修改這個屬性來改變元素的類別。
style: 這個屬性允許直接在元素上設定行內樣式。
操作 CSS樣式:
NODE.classList
: 查看目前所有 class 名稱,會回傳類似陣列的清單。NODE.classList.add(className1, className2)
: 加入一個或多個樣式。NODE.classList.remove(className1, className2)
: 刪除樣式。NODE.className = className
- 如果樣式只有一個,也可以直接寫入。操作style
屬性:改變的是元素的視覺呈現(即CSS樣式),並不會改變HTML源代碼中的屬性值。
NODE.style.backgroundColor
NODE.style.borderStyle
※ 屬性:修改的是元素的HTML屬性。
屬性操作:
getAttribute()-得到屬性內容,setAttribute()-新增或修改屬性內容。
在DORM元素上新增一個監聽器,來偵測使用者的操作行為,接著監聽器收到訊號後會如何執行對應程式
執行程序:
設置事件時,需要考慮到幾個基本要件:
// listener
element.addEventListener('click', greeting)
// handler
function greeting() {
alert('handling event')
}
addEventListener 可以傳入三個參數:
click
- 滑鼠點擊元素mousemove
- 滑鼠滑過元素mouseout
- 滑鼠離開元素keydown
- 點擊且長按一個鍵時keyup
- 放開按鍵時submit
- 提交表單時focus
- 點擊某個輸入框時input
- 輸入框內容改變時