相同點: 都是獲取父元素下的第一個節點對象javascript
不一樣點:html
firstChild: IE六、七、8 第一個元素節點; 非IE六、七、8:返回第一個元素節點或文本節點java
firstElementChild: IE六、七、8不支持;非IE六、七、8,獲取第一個元素節點node
<script type="text/javascript"> /** * @description: 獲取父元素的第一個節點 * @param ele: 傳入一個DOM元素 * */ function firstChild(ele) { if(ele.nodeType) { // 存在nodeType屬性,傳進來的就是DOM元素 if(ele.firstElementChild) { // 非IE return ele.firstElementChild; } return ele.firstChild; // IE } else { throw new Error("您傳入的參數不是DOM元素!!!"); } } window.onload = function() { var box = document.getElementById("box"); console.log(firstChild(box));// 無論什麼瀏覽器永遠返回1--也就是第一個元素節點,而非文本節點 console.log(box.firstChild.nodeType);// chrome下返回3 } </script> <body> <div id="box"> q <span>1</span> <span>2</span> <a href="">3</a> </div> </body>
相同點:獲取父節點下的最後一個節點對象;chrome
不一樣點:一、lastchild:IE6,7,8:最後一個元素節點;瀏覽器
非IE6,7,8:最後一個節點,文本節點或者元素節點;spa
二、lastElementChild:IE6,7,8:不支持;code
非IE6,7,8:最後一個元素節點htm
- 相同點:獲取後一個兄弟節點對象;
- 不一樣點:一、nextSibling:IE6,7,8:後一個兄弟元素節點;對象
非IE6,7,8:後一個兄弟節點,文本節點或者元素節點;
二、lastElementChild:IE6,7,8:不支持;
非IE6,7,8:後一個兄弟元素節點;
- 相同點:獲取前一個兄弟節點對象;
-不一樣點:一、previousSibling:IE6,7,8:前一個兄弟元素節點;
非IE6,7,8:前一個兄弟節點,文本節點或者元素節點;
二、previousElementChild:IE6,7,8:不支持;
非IE6,7,8:前一個兄弟元素節點;