語法:元素.innerHTML = '內容';app
1 <body> 2 <button>add</button> 3 <ul> 4 <li>列表項</li> 5 </ul> 6 <script> 7 //更新ul中的內容,動態添加li 8 var btn = document.querySelector('button'); 9 var ul = document.querySelector('ul'); 10 btn.onclick = function() { 11 var old = ul.innerHTML; //原有的li 12 ul.innerHTML = old + '<li>new list</li>'; 13 } 14 </script> 15 </body>
innerHTML適用於少許的拼接,由於字符串大量拼接時有性能問題。函數
語法:document.createElement('標籤名'); //返回一個新的元素對象性能
1 <body> 2 <button>add</button> 3 <ul> 4 <li>列表項</li> 5 </ul> 6 <script> 7 //更新ul中的內容,動態添加li 8 var btn = document.querySelector('button'); 9 var ul = document.querySelector('ul'); 10 btn.onclick = function() { 11 var newChild = document.createElement('li'); 12 newChild.innerText = '新元素'; //設置內容,給誰設置誰就點 13 ul.appendChild(newChild); //追加元素 14 }; 15 </script> 16 </body>
createElement不須要拼接,會自動追加到下一項。運行速度比innerHTML拼接要快。(推薦使用)spa
innerHTML大量拼接字符串時速度慢。code
語法:父元素.appendChild(子元素);對象
函數封裝注意:對於函數體中不能寫死的地方用參數。blog
1 <button>建立li</button> 2 <ul> 3 <li>我是li</li> 4 </ul> 5 <script> 6 var btn = document.querySelector('button'); 7 var ul = document.querySelector('ul'); 8 btn.onclick = function() { 9 // 建立一個新的li元素 10 var newLi = document.createElement('li'); 11 // 追加 12 ul.appendChild(newLi); 13 // 設置內容 14 newLi.innerText = '我是新來的li'; 15 }; 16 </script>
語法:父元素.removeChild(子元素); ip
confirm(); 提示是否確認刪除,返回布爾值。rem
1 <ul> 2 <li>我是li1</li> 3 <li class="li2">我是li2</li> 4 <li>我是li3</li> 5 </ul> 6 <script> 7 var ul = document.querySelector('ul'); 8 var li2 = document.querySelector('.li2'); 9 // 移除第二li 10 ul.removeChild(li2); 11 </script>
語法:父節點.insertBefore(新的節點,舊的子節點)字符串
語法:父節點.replaceChild(新的節點,舊的子節點)
語法:元素.cloneNode(true或false); 返回一份新的克隆後的元素,默認值false
1 <ul> 2 <li>我是li1</li> 3 <li>我是li2</li> 4 <li>我是li3</li> 5 </ul> 6 <div> 7 <h2>我是div中的標題</h2> 8 <span>我是span</span> 9 <button>按鈕</button> 10 <p>段落</p> 11 </div> 12 13 <script> 14 var ul = document.querySelector('ul'); 15 var oldLi = ul.children[0]; 16 // 建立一個新的li 17 var newLi = document.createElement('li'); 18 newLi.innerText = '我是新的li'; 19 // 【插入】 20 // ul.insertBefore(newLi,oldLi); 21 // 替換 22 // ul.replaceChild(newLi,oldLi); 23 // 【獲取div】 24 var div = document.querySelector('div'); 25 // 【克隆】 26 // var newDiv = div.cloneNode(); // 默認是false,表示僅僅克隆外層標籤 27 var newDiv = div.cloneNode(true); // 如果true,會克隆該元素的全部內容 28 document.body.appendChild(newDiv); 29 </script>