节点的创建删除
创建元素:document.createElement()var div=document.createElement('div')div.innerHTML=123;将div放在body里document.body.appendChild(div);创建文本节点:document.createTextNode('文本内容');创建注释节点:document.createComment('注释内容');增加子节点:appendChild 在Node.prototype
在a标签剪切到div标签下面
c.insertBefore(a,b) //插入:在父级c节点下的子节点b之前插入a节点父节点.removeChild(子节点) //将节点从Dom节点上移除p.remove() 彻底销毁p元素innerHTML、innerTextdiv.innerHTML+='23456';innerHTML可以添加标签元素,且标签元素会自动翻译父级.replaceChild(new,origin)<div><h1></h1></div>var div=document.getElementsByTagName('div')[0];var h1=document.getElementsByTagName('h1')[0];var h2=document.createElement('h2');div.replaceChild(h2,h1); //此时div里就是h2标签了setAttribute() 给元素添加属性 getAttribute()div.setAttribute('id','box');var attr=div.getAttribute('id');系统自定义属性 HTML5给元素添加了一个data-*属性,用data-*设置的属性也可以通过getAttribute获取属性值 data-*的兼容性不是很好,手机端没问题,pc端ie9及一下都不兼容<p data-age='18'>lll</p>var p=document.getElementsByTagName('p')[0];var attr=p.getAttribute('data-age')
p.dataset.age=’18’
创建文档碎片 document.createDocumentFragment()
var oUl=document.getElementById('list');// var oDiv=document.createElement('div');var oFrag=document.createDocumentFragment();for(var i=0;i<10000;i++) {var oLi=document.createElement('li');oLi.innerHTML=`${i}、这是第${i}个项目`;oLi.className='list-item';// oUl.appendChild(oLi);//性能比较差//oDiv.appendChild(oLi); //此处引来了一个新的节点标签oFrag.appendChild(oLi)}oUl.appendChild(oFrag);
用insertBefore封装insertAfter
<div><p></p><h1></h1></div>var div=document.getElementsByTagName('div')[0];var h1=div.getElementsByTagName('h1')[0];var oStrong=document.createElement('strong');div.insertBefore(oStrong,h1)

var div=document.getElementsByTagName('div')[0];var h1=div.getElementsByTagName('h1')[0];var oStrong=document.createElement('strong');Element.prototype.insertAfter=function(target,afterNode){var nextElem=afterNode.nextElementSibling;if(nextElem){this.insertBefore(target,nextElem);}else{this.appendChild(target);}}div.insertAfter(oStrong,h1)



