# JavaScript如何替換div內容
在Web開發中,動態修改頁面元素是常見需求。本文將詳細介紹使用JavaScript替換`<div>`內容的4種主流方法,并分析其適用場景。
## 一、innerHTML屬性替換
最直接的方式是通過`innerHTML`屬性覆蓋原有內容:
```javascript
document.getElementById('myDiv').innerHTML = '<p>新內容</p>';
優點: - 支持HTML標簽解析 - 所有瀏覽器兼容
缺點: - 存在XSS注入風險(需對用戶輸入轉義) - 會破壞原有事件監聽器
當只需要修改文本內容時:
document.querySelector('.content').textContent = '純文本新內容';
特點: - 自動轉義HTML標簽(顯示為文本) - 性能優于innerHTML - IE9+支持
通過創建新節點替換原有內容:
const div = document.getElementById('target');
const newContent = document.createElement('p');
newContent.textContent = '動態創建的內容';
div.innerHTML = ''; // 清空原有內容
div.appendChild(newContent);
適用場景: - 需要保留DOM引用時 - 復雜結構的內容替換
ES6新增的節點替換API:
const oldDiv = document.getElementById('old');
const newDiv = document.createElement('div');
newDiv.innerHTML = '<span>全新內容</span>';
oldDiv.replaceWith(newDiv);
優勢: - 可以替換整個DOM元素 - 支持多參數批量替換
function safeReplace(divId, content) {
const div = document.getElementById(divId);
div.textContent = content; // 自動轉義
}
textContent代替innerHTML處理用戶輸入DocumentFragmentconst temp = div.parentNode.removeChild(div);
//...執行修改
document.body.appendChild(temp);
| 方法 | HTML支持 | 保留事件 | 兼容性 |
|---|---|---|---|
| innerHTML | ? | ? | 全部 |
| textContent | ? | ? | IE9+ |
| DOM操作 | ? | ? | 全部 |
| replaceWith() | ? | ? | Edge15+ |
根據實際需求選擇合適方法,簡單內容替換推薦textContent,復雜結構建議使用DOM操作。
“`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。