firstChild,lastChild,nextSibling,previousSibling & 兼容性写法
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>Document</title> 7 </head> 8 9 <body> 10 <ul id="ul1"> 11 <li>0001</li> 12 <li>0002</li> 13 <li>0003</li> 14 <li>0004</li> 15 </ul> 16 <script> 17 window.onload = function() { 18 19 var oUl = document.getElementById('ul1'); 20 21 /** 22 获取第一个子元素 23 24 obj.firstChild 25 标准浏览器下会取到文本节点 26 非标准浏览器下只会取到元素节点 27 28 obj.firstElementChild 29 标准浏览器下只会取到元素节点 30 非标准浏览器不认识该属性 31 32 兼容代码 33 if(obj.firstElementChild){ 34 obj.firstElementChild.style.background='red'; 35 }else{ 36 obj.firstChild.style.background='red'; 37 } 38 39 var oFirst = obj.firstElementChild || obj.firstChild; 40 if( oFirst ){ 41 oFirst.style.background = 'red'; 42 } 43 44 以上兼容代码都有BUG so 使用一下代码查找第一个子obj 45 obj.children[0].style.background = 'red'; 46 */ 47 48 var oFirst = oUl.children[0]; 49 if (oFirst) { 50 oFirst.style.background = 'red'; 51 } 52 53 /** 54 获取最后一个子元素 55 56 obj.lastChild 57 标准浏览器下会取到文本节点 58 非标准浏览器下只会取到元素节点 59 60 obj.lastElementChild 61 标准浏览器下只会取到元素节点 62 非标准浏览器不认识该属性 63 64 var oLast = obj.lastElementChild || obj.lastChild; 65 if( oLast ){ 66 oLast.style.background = '#abcdef'; 67 } 68 69 */ 70 71 var oLast = oUl.children[oUl.children.length-1]; 72 if (oLast) { 73 oLast.style.background = '#abcdef' 74 } 75 76 /** 77 获取上一个兄弟节点 78 79 obj.previousSibling 80 标准浏览器下会取到文本节点 81 非标准浏览器下只会取到元素节点 82 83 obj.previousElementSibling 84 标准浏览器下只会取到元素节点 85 非标准浏览器不认识该属性 86 87 var oPrevious = obj.previousElementSibling || obj.previousSibling; 88 if( oPrevious ){ 89 oPrevious.style.background = 'yellow'; 90 } 91 92 */ 93 94 var oPrevious = oLast.previousElementSibling || oLast.previousSibling; 95 if (oPrevious) { 96 oPrevious.style.background = 'yellow'; 97 } 98 99 100 /** 101 获取下一个兄弟节点 102 103 nextSibling 104 标准浏览器可以获取文本节点 105 非标准浏览器只能获取元素节点 106 107 nextElementSibling 108 标准浏览器只能获取元素节点 109 非标准浏览器不支持该属性 110 111 var oNext = oFirst.nextElementSibling || oFirst.nextSibling; 112 if( oNext ){ 113 oNext.style.background = 'pink'; 114 } 115 116 */ 117 118 var oNext = oFirst.nextElementSibling || oFirst.nextSibling; 119 if (oNext) { 120 oNext.style.background = 'pink'; 121 } 122 123 }; 124 </script> 125 </body> 126 127 </html>