节点的创建删除

  1. 创建元素:document.createElement()
  2. var div=document.createElement('div')
  3. div.innerHTML=123;
  4. div放在body
  5. document.body.appendChild(div);
  6. 创建文本节点:document.createTextNode('文本内容');
  7. 创建注释节点:document.createComment('注释内容');
  8. 增加子节点:appendChild Node.prototype

image.png在a标签剪切到div标签下面

  1. c.insertBefore(a,b) //插入:在父级c节点下的子节点b之前插入a节点
  2. 父节点.removeChild(子节点) //将节点从Dom节点上移除
  3. p.remove() 彻底销毁p元素
  4. innerHTMLinnerText
  5. div.innerHTML+='23456';
  6. innerHTML可以添加标签元素,且标签元素会自动翻译
  7. 父级.replaceChild(new,origin)
  8. <div>
  9. <h1></h1>
  10. </div>
  11. var div=document.getElementsByTagName('div')[0];
  12. var h1=document.getElementsByTagName('h1')[0];
  13. var h2=document.createElement('h2');
  14. div.replaceChild(h2,h1); //此时div里就是h2标签了
  15. setAttribute() 给元素添加属性 getAttribute()
  16. div.setAttribute('id','box');
  17. var attr=div.getAttribute('id');
  18. 系统自定义属性 HTML5给元素添加了一个data-*属性,用data-*设置的属性也可以通过getAttribute获取
  19. 属性值 data-*的兼容性不是很好,手机端没问题,pcie9及一下都不兼容
  20. <p data-age='18'>lll</p>
  21. var p=document.getElementsByTagName('p')[0];
  22. var attr=p.getAttribute('data-age')

image.png p.dataset.age=’18’

创建文档碎片 document.createDocumentFragment()

  1. var oUl=document.getElementById('list');
  2. // var oDiv=document.createElement('div');
  3. var oFrag=document.createDocumentFragment();
  4. for(var i=0;i<10000;i++) {
  5. var oLi=document.createElement('li');
  6. oLi.innerHTML=`${i}、这是第${i}个项目`;
  7. oLi.className='list-item';
  8. // oUl.appendChild(oLi);//性能比较差
  9. //oDiv.appendChild(oLi); //此处引来了一个新的节点标签
  10. oFrag.appendChild(oLi)
  11. }
  12. oUl.appendChild(oFrag);

用insertBefore封装insertAfter

  1. <div>
  2. <p></p>
  3. <h1></h1>
  4. </div>
  5. var div=document.getElementsByTagName('div')[0];
  6. var h1=div.getElementsByTagName('h1')[0];
  7. var oStrong=document.createElement('strong');
  8. div.insertBefore(oStrong,h1)

image.png

  1. var div=document.getElementsByTagName('div')[0];
  2. var h1=div.getElementsByTagName('h1')[0];
  3. var oStrong=document.createElement('strong');
  4. Element.prototype.insertAfter=function(target,afterNode){
  5. var nextElem=afterNode.nextElementSibling;
  6. if(nextElem){
  7. this.insertBefore(target,nextElem);
  8. }else{
  9. this.appendChild(target);
  10. }
  11. }
  12. div.insertAfter(oStrong,h1)

image.pngimage.png

image.png