狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JavaScript 創建、修改和刪除節點

admin
2025年7月6日 14:14 本文熱度 53

一、創建節點

創建節點分為創建元素節點和文本節點.
1) createElement
創建新元素,我們來看看示例:
//創建一個新的 div 元素const newDiv = document.createElement('div');
//給它加點內容newDiv.textContent = '我是新來的div';
//加點樣式newDiv.style.backgroundColor = 'lightblue';newDiv.style.padding = '10px';
createElement 方法接收一個參數, 就是你要創建的 HTML 標簽名. 創建后, 這個元素還不會立即出現在頁面上, 它只是存在于內存中, 等著被添加到 DOM 樹中.
2) createTextNode
創建文本節點:
const textNode = document.createTextNode('這是一段純文本內容');
//可以把這個文本節點添加到元素中newDiv.appendChild(textNode);
雖然現在大多數情況下我們直接用textContentinnerText就夠了, 但在某些特殊場景下 createTextNode 還是很有用的.
二、添加節點
創建好節點后, 我們需要把它們放到頁面中才能看到效果:
1) appendChild
添加到末尾, 這是最常用的方法 , 把節點添加到指定父節點的子節點列表末尾:
// 獲取頁面中的容器const container = document.getElementById('container');
// 把我們之前創建的 div 添加進去container.appendChild(newDiv);
如果你把一個已存在于文檔中的節點 append 到另一個位置, 它會被從原來的位置移動, 而不會被復制.
2) insertBefore
在指定位置插入, 如果你想控制新節點的位置 , 而不是總是添加到末尾, 可以使用 insertBefore:
//創建一個新元素const newParagraph = document.createElement('p');newParagraph.textContent = '我在中間';
//獲取參考節點const firstChild = container.firstChild;
//在第一個子節點前插入新段落container.insertBefore(newParagraph, firstChild);
insertBefore 接收兩個參數: 要插入的節點和參考節點.新節點會被插入到參考節點之前.
3) insertAdjacentHTML

更靈活的插入,這組方法提供了更多插入位置的選擇:

const targetElement = document.getElementById('target');
// 四種插入位置targetElement.insertAdjacentHTML('beforebegin''<div>beforebegin - 在元素前面</div>');targetElement.insertAdjacentHTML('afterbegin''<div>afterbegin - 在元素內部開頭</div>');targetElement.insertAdjacentHTML('beforeend''<div>beforeend - 在元素內部末尾</div>');targetElement.insertAdjacentHTML('afterend''<div>afterend - 在元素后面</div>');
這個方法特別適合需要精確控制插入位置的場景.
三、修改節點, 創建和添加節點后, 我們經常需要修改它們
1) 修改屬性: 
const link = document.createElement('a');
//設置屬性link.href = 'https://www.example.com';link.title = '示例網站';link.setAttribute('data-custom''value'); //自定義屬性
//修改樣式link.style.color = 'red';link.style.textDecoration = 'none';
2) 修改內容: 
//替換整個內容(包括HTML)link.innerHTML = '<strong>點擊我</strong>';
//只設置文本內容(更安全,防止XSS攻擊)link.textContent = '安全的文本內容';
//追加內容link.innerHTML += ' (追加的內容)';
3) replaceChild - 替換節點
//創建一個新節點const newHeading = document.createElement('h2');newHeading.textContent = '新的標題';
//獲取要被替換的節點和父節點const oldHeading = document.getElementById('old-heading');const parent = oldHeading.parentNode;
//替換節點parent.replaceChild(newHeading, oldHeading);
四,節點的其他操作
1)cloneNode - 節點克隆: 
const original = document.getElementById('original');
// 淺克隆(只克隆節點本身,不包含子節點)const shallowClone = original.cloneNode(false);
// 深克隆(克隆節點及其所有子節點)const deepClone = original.cloneNode(true);
// 添加克隆的節點到文檔中document.body.appendChild(deepClone);
cloneNode 默認不會復制事件監聽器,但會復制屬性(包括像 onclick 這樣的內聯事件處理器).
2)removeChild - 移除節點: 
const parent = document.getElementById('parent');const child = document.getElementById('child-to-remove');
//移除子節點parent.removeChild(child);
remove-更簡單的方法:
const elementToRemove = document.getElementById('remove-me');elementToRemove.remove(); //直接從DOM中移除自己
3) DocumentFragment, 批量操作優化:
當你需要添加多個節點時,頻繁操作 DOM 會導致性能問題.這時可以使用 DocumentFragment:
//創建一個文檔片段const fragment = document.createDocumentFragment();
//向片段中添加多個元素for (let i = 0; i < 100; i++) {  const newItem = document.createElement('li');  newItem.textContent = `項目 ${i}`;  fragment.appendChild(newItem);}
//一次性添加到DOM中document.getElementById('list').appendChild(fragment);
五、我們來看一個完整的例子, 結合上面講的各種方法
//創建一個評論列表功能function addComment(name, text) {  //創建文檔片段  const fragment = document.createDocumentFragment();
  //創建評論容器  const commentDiv = document.createElement('div');  commentDiv.className = 'comment';
  //創建用戶名標題  const nameHeading = document.createElement('h3');  nameHeading.textContent = name;
  //創建評論文本  const textParagraph = document.createElement('p');  textParagraph.textContent = text;
  // 創建刪除按鈕  const deleteButton = document.createElement('button');  deleteButton.textContent = '刪除';  deleteButton.className = 'delete-btn';
  //組裝評論  commentDiv.appendChild(nameHeading);  commentDiv.appendChild(textParagraph);  commentDiv.appendChild(deleteButton);
  //添加到片段  fragment.appendChild(commentDiv);
  //獲取評論列表容器  const commentsContainer = document.getElementById('comments');
  //如果有評論,就插入到第一個位置,否則直接添加  if (commentsContainer.firstChild) {    commentsContainer.insertBefore(fragment, commentsContainer.firstChild);  } else {    commentsContainer.appendChild(fragment);  }}
//添加刪除功能document.getElementById('comments').addEventListener('click'function(e) {  if (e.target.classList.contains('delete-btn')) {    const comment = e.target.closest('.comment');    comment.remove(); // 現代方法    // 或者用舊方法:    // comment.parentNode.removeChild(comment);  }});
// 使用示例addComment('張三''這篇文章太棒了!');addComment('李四''學到了很多新知識!');


閱讀原文:原文鏈接


該文章在 2025/7/7 9:35:50 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved