整理一下原生 js 添加及删除元素和内容的相关知识,供参考。
初始HTML代码:(一个小实例,点击按钮删除元素)
<div id="container"> <h2 id="Element">我只是一个小元素,任人宰割。</h2> </div> <button id="btn">刀是我拿的,人是我杀的</button>
一个容器,用来放添加的元素。一个button按钮,用来动态的操作DOM。
初始js代码:
var container = document.getElementById("container"); var Element = document.getElementById("Element"); var btn = document.getElementById("btn"); btn.onclick = function () { Element.parentNode.removeChild(Element); console.log("删除成功!") }
添加元素:
在元素内添加内容:
文本内容 innerText
container.innerText = '追加的内容';
HTML内容 innerHTML
container.innerHTML = '<h3>追加内容为H3标签</h3>';
在原有内容的基础上添加:
以HTML为例:
container.innerHTML = container.innerHTML + '<h3>追加内容为H3标签</h3>';
也可以用 += 的写法:
container.innerHTML += '<h3>追加内容为H3标签</h3>';
创建元素及内容,添加到页面中:
创建元素 createElement ,创建内容 createTextNode ,添加元素 appendChild
var text = document.createTextNode("这是一段文字"); var ele = document.createElement("h3");//创建一个html标签 ele.appendChild(text);//在标签内添加文字 container.appendChild(ele);//将标签添加到页面中
删除元素:
移除元素 removeChild
通过获取id删除:
var idObject = document.getElementById('sidebar'); if (idObject != null){ idObject.parentNode.removeChild(idObject); }
通过获取class删除:
var paras = document.getElementsByClassName('paginator'); for(i=0;i<paras.length;i++){ //删除元素 元素.parentNode.removeChild(元素); if (paras[i] != null) paras[i].parentNode.removeChild( paras[i]); }
清空元素:清空一个元素,即删除一个元素的所有子元素
function removeAllChild() { var div = document.getElementById("div1"); while(div.hasChildNodes()) //当div下还存在子节点时 循环继续 { div.removeChild(div.firstChild); } }
原理很简单,就是不断的判断要清空的div还有没有子节点,有的话就删除一个子节点(这里是它的首个子节点),直到删除完毕为止。
封装的方法:
function removeElement(_element){ var _parentElement = _element.parentNode; if(_parentElement){ _parentElement.removeChild(_element); } }
未经允许不得转载:前端资源网 - w3h5 » 原生JS动态添加、删除元素&内容