jQuery $(parent).append(htmlString) 在原生 JS 中有兩種等價方案,視場景選擇。
// 創建元素節點
var div = document.createElement('div');
div.textContent = 'Hello';
parent.appendChild(div); // 只接受 Node,不接受字符串
// 直接解析 HTML 字符串並插入
parent.insertAdjacentHTML('beforeend', '<div>Hello</div>');
// 位置參數:beforebegin | afterbegin | beforeend | afterend
| 特性 | appendChild | insertAdjacentHTML |
|---|---|---|
| 輸入類型 | Node | HTML 字符串 |
| 解析開銷 | 手動創建節點 | 瀏覽器原生解析器(快) |
| 事件綁定 | 保留原節點引用 | 重新解析,舊節點事件丟失 |
| XSS 風險 | 無(文本內容安全) | 高(需轉義不可信輸入) |
insertAdjacentHTML 簡潔高效。createElement + appendChild。textContent 設置文本,杜絕 XSS。現代框架(React/Vue)底層同樣依賴這兩類原生 API 實現虛擬 DOM 打補丁。