原生js操作Dom节点:CRUD
知识点,依然会遗忘。我在思考到底是什么原因。想到研究生考试准备的那段岁月,想到知识体系的建立,知识体系分为正向知识体系和逆向知识体系;正向知识体系可以理解为教科书目录,逆向知识体系可以理解考试真题。
按照知识体系建设这个思路,追求长久的深刻的记忆。决定建立正向知识体系。本文系正向知识体系的第一篇。
原生js操作dom节点:所谓的CRUD,代表create,read,update,del;也就是创建,读取,更新和删除。dom提供了api用于创建节点常用有
1 var div=document.createElement("div"); 2 var p=document.createElement("p"); 3 div.innerHTML="这是插入内容"; 4 var text=document.createTextNode("这是文本内容"); 5 var img=new Image();
创建元素、文本内容和图片。创建要和插入一起使用,所以
1 2 dom1.appendChild(div); 3 dom1.insertBefore(div,dom1.querySelector("p")); 4 function inertAfter(newElement,targetElement){ 5 var parent=targetElement.parentNode; 6 if (parent.lastChild==targetElement) { 7 parent.appendChild(newElement); 8 }else{ 9 parent.inertBefore(newElement,targetElement.nestSibling); 10 } 11 } 12 document.getElementById('id名称').preappend(div);//直接插入到父元素第一个位置 13 document.getElementById('id名称').append(div);//直接插入到父元素最后位置 14 //还有另一个api 15 dom1.insertAdjacentHTML("afterBegin","<h1> 在文本前容器内插入内容1</h1>"); 16 dom1.insertAdjacentHTML("beforeEnd","<h2> 在文本后容器内插入内容2</h2>"); 17 dom1.insertAdjacentHTML("beforeBegin","<h4> 在文本前容器外插入内容4</h1>"); 18 dom1.insertAdjacentHTML("afterEnd","<h5> 在文本后容器外插入内容5</h2>");
读取也就是选择器的功能实现
1 //直接选择器 2 var dom1=document.getElementById("dom1"); 3 var dom1=document.querySelector("#dom1"); 4 var matches = document.querySelectorAll("div.note, div.alert"); 5 var div=document.getElementsByClassName(".div"); 6 var div=document.getElementsByTagName("div"); 7 //节点关系选择器 8 var divC=div.innerHTML;//内部 9 var divC=div.outerHTML;//整个节点 10 var divS=div.children;//子节点集合 11 var divS=div.firstChild;//第一个子节点,如果有空格返回#text 12 var divS=div.lastChild;//最后一个子节点,如果有空格返回#text 13 var divS=div.nextSibling;//下一个节点,如果有空格返回#text 14 var divS=div.prvSibling;//前一个节点,如果有空格返回#text 15 var divS=div.parentNode;//父节点 16 //节点集合 17 var form=document.forms[0];//表单集合 18 var img=document.images[0];//图片集合 19 var img=document.links[0];//所有带连接的a节点
然后是更新,我理解的是替换,常用实现
1 parent.replaceChild(div,dom1.querySelector("p")); 2 dom1.innerHTML="hhh"; 3 dom1.innerText="999";
最后是删除的实现
1 parent.removeChild(dom1.querySelector("p")); 2 dom1.innerHTML=""; 3 dom1.innerText="";
本文结束。
我站在山顶看风景!下面是我的家乡!