需求---用以前学习的知识点可否解决?获取div中全部的标签,设置每一个标签的背景颜色html
节点---任意一个标签中的元素获取都很是的方便node
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> <div id="dv"> <span>这是div中的第一个span标签</span> <p>这是div中的第二个元素,第一个p标签</p> <ul id="uu"> <li>乔峰</li> <li>鹿茸</li> <li id="three">段誉</li> <li>卡卡西</li> <li>雏田</li> </ul> </div> <script src="common.js"></script> <script> var ulObj=my$("uu"); console.log(ulObj.parentNode);//div console.log(ulObj.parentNode.parentNode);//body console.log(ulObj.parentNode.parentNode.parentNode);//html console.log(ulObj.parentNode.parentNode.parentNode.parentNode);//document console.log(ulObj.parentNode.parentNode.parentNode.parentNode.parentNode);//null // //ul标签的父级节点 // console.log(ulObj.parentNode); // //ul标签的父级元素 // console.log(ulObj.parentElement); // // console.log(ulObj.parentNode.nodeType);//标签的---1 // console.log(ulObj.parentNode.nodeName);//标签---大写的标签名字 // console.log(ulObj.parentNode.nodeValue);//标签---null </script> </body> </html>
.childNodes // 7个学习
.children //3个spa
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> <div id="dv">哦哦 <span>这是div中的第一个span标签</span> <p>这是div中的第二个元素,第一个p标签</p> <ul id="uu"> <li>乔峰</li> <li>鹿茸</li> <li id="three">段誉</li> <li>卡卡西</li> <li>雏田</li> </ul> </div> <script src="common.js"></script> <script> //div var dvObj = document.getElementById("dv"); //子节点 console.log(dvObj.childNodes);//7个子节点 //子元素 console.log(dvObj.children); //3 </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> <div id="dv">哦哦 <span>这是div中的第一个span标签</span> <p>这是div中的第二个元素,第一个p标签</p> <ul id="uu"> <li>乔峰</li> <li>鹿茸</li> <li id="three">段誉</li> <li>卡卡西</li> <li>雏田</li> </ul> </div> <script src="common.js"></script> <script> //div var dvObj = document.getElementById("dv"); //获取里面的每一个子节点 for (var i = 0; i < dvObj.childNodes.length; i++) { var node = dvObj.childNodes[i]; //nodeType--->节点的类型:1---标签,2---属性,3---文本 //nodeName--->节点的名字:大写的标签--标签,小写的属性名---属性,#text---文本 //nodeValue-->节点的值:标签---null,属性--属性的值,文本--文本内容 console.log(node.nodeType + "=====" + node.nodeName + "====" + node.nodeValue); } </script> </body> </html>
.getAttributeNode("id")code
//2====id====dvhtm
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> <div id="dv">哦哦 <span>这是div中的第一个span标签</span> <p>这是div中的第二个元素,第一个p标签</p> <ul id="uu"> <li>乔峰</li> <li>鹿茸</li> <li id="three">段誉</li> <li>卡卡西</li> <li>雏田</li> </ul> </div> <script src="common.js"></script> <script> //div var dvObj = document.getElementById("dv"); //获取的是属性的节点 var node = dvObj.getAttributeNode("id"); console.log(node.nodeType + "====" + node.nodeName + "====" + node.nodeValue);//2====id====dv </script> </body> </html>
前4个没有兼容问题对象
后面8个有blog
<body> <div id="dv">哦哦 <span>这是div中的第一个span标签</span> <p>这是div中的第二个元素,第一个p标签</p> <ul id="uu"> <li>乔峰</li> <li>鹿茸</li> <li id="three">段誉</li> <li>卡卡西</li> <li>雏田</li> </ul> </div> <script src="common.js"></script> <script> //12行代码:都是获取节点和元素的 //ul var ulObj=document.getElementById("uu"); //父级节点 console.log(ulObj.parentNode); //父级元素 console.log(ulObj.parentElement); //子节点 console.log(ulObj.childNodes); //子元素 console.log(ulObj.children);
//我是分割线//
//第一个子节点 console.log(ulObj.firstChild);//------------------------IE8中是第一个子元素 //第一个子元素 console.log(ulObj.firstElementChild);//-----------------IE8中不支持 //最后一个子节点 console.log(ulObj.lastChild);//------------------------IE8中是第一个子元素 //最后一个子元素 console.log(ulObj.lastElementChild);//-----------------IE8中不支持 //某个元素的前一个兄弟节点 console.log(my$("three").previousSibling); //某个元素的前一个兄弟元素 console.log(my$("three").previousElementSibling); //某个元素的后一个兄弟节点 console.log(my$("three").nextSibling); //某个元素的后一个兄弟元素 console.log(my$("three").nextElementSibling); </script> </body>