1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <div id="box"> 9 <p>唱歌</p> 10 <p>滑雪</p> 11 <p>吃饭</p> 12 <p>玩游戏</p> 13 <!--我是注释--> 14 </div> 15 16 17 <script type="text/javascript"> 18 window.onload = function () { 19 // 要查找子节点或者子元素节点 必须先找到一个元素,代表找谁的(父级) 20 var box = document.getElementById('box'); 21 console.log(box.childNodes);//拿的是子节点(不是子元素节点),是一个伪数组 22 //每个节点里面都有nodeType nodeName nodeValue三个属性,通过nodeType属性判断是否子元素节点 23 24 // nodeName nodeType nodeValue 25 // 文本节点 #text 3 文本内容 26 // 元素节点 全大写的元素名 1 null 27 // 注释节点 #comment 8 注释内容 28 // 我想从子节点当中去过滤出所有的子元素节点 形成一个真数组 29 30 // var arr = []; 31 32 // for (var i = 0; i < box.childNodes.length; i++) { 33 // if(box.childNodes[i].nodeType === 1){ 34 //// 只要能进到if里边 说明当前这个索引对应的节点 是元素节点 35 // arr.push(box.childNodes[i]) 36 // } 37 // } 38 // console.log(arr); 39 40 // 子元素节点 41 console.log(box.children);//专门用来拿子元素节点的,但是高级浏览器拿到的是子元素 低级浏览器拿到的除了子元素还有注释 42 var arr2 = []; 43 for (var i = 0; i < box.children.length; i++) { 44 if(box.children[i].nodeType === 1){ 45 arr2.push(box.children[i]); 46 } 47 } 48 // console.log(arr2); 49 // 父节点和父元素节点 50 console.log(box.parentNode);//父节点 51 console.log(box.parentElement);//父元素节点 52 // 注:拿父节点和父元素节点的时候 拿的都是父元素 所以以后都可以 53 // 每个节点里面都有nodeType nodeName nodeValue三个属性 54 } 55 </script> 56 </body> 57 </html>