Element 擴充
Element.prototype 與 DocumentFragment.prototype 上的鏈式方法:內容、class、屬性、子元素、節點走訪與事件處理。
Element
原始碼:src/prototype/Element.ts
| 方法/屬性 | 說明 |
|---|---|
el.length |
this.children.length |
el.$i |
元素在父層子節點中的索引 |
el.$attributes |
所有屬性組成的 { name: value } 物件 |
el._(value) / el.__(value) |
新增/取代子節點——字串與數字轉為文字節點;純物件會格式化為 <br> 分行的 JSON |
el._style(map) / el._data(map) / el._attr(map) |
鏈式:依物件批次設定 style / dataset / attribute 鍵值 |
el._class(list) |
鏈式:新增一或多個 class(字串以逗號/空白/點分隔,或陣列) |
el.class_(list) / el.style_(list) / el.data_(list) / el.attr_(list) |
鏈式:移除 class/清除樣式/刪除 dataset 鍵/移除屬性 |
el.$style(key) / el.$data(key) / el.$attr(key) |
讀取單一樣式屬性/dataset 項目/屬性值 |
el.class__() |
鏈式:完全清空 className |
el.__class(list) |
鏈式:取代整個 class 列表 |
el.$$class(list) |
僅當 list 中每個 class 都存在時為 true |
el.$$class_(bool, list) |
鏈式:bool 為假時新增 list,為真時移除(省略 bool 時自動偵測目前狀態) |
el.$$data(key, value?) / el.$$attr(key, value?) |
dataset/屬性值等於 value 時為 true;省略 value 時檢查是否非空 |
el._children(...args) |
鏈式:透過 _child 逐一新增每個引數 |
el._child(value, before) |
鏈式:依索引或參照 Element 新增/插入子節點(或子節點陣列) |
el.__child(value) |
鏈式:取代子節點(replaceChildren) |
el.$child(value) |
依混合的選擇器字串與數字索引陣列查詢子節點 |
el.$parent(count) / el.$pre(count) / el.$next(count) |
沿 parentElement / previousElementSibling / nextElementSibling 走訪 count 步 |
el.$sel(selector) / el.$selAll(selector) |
有空值保護的 querySelector / querySelectorAll |
el._click(fn)(及所有 DOM 事件名,如 _input、_keydown、_touchstart、_drop 等) |
鏈式指定 on<event> = fn |
DocumentFragment
原始碼:src/prototype/DocumentFragment.ts
| 方法/屬性 | 說明 |
|---|---|
fragment.innerHTML |
透過一個未掛載的 <div> 序列化片段內容 |
fragment.length |
this.children.length |
fragment._children(...args) |
逐一新增每個引數作為子節點 |
fragment._child(value) |
新增一個值(或值陣列);字串/數字轉為文字節點 |