firstChild與firstElementChild


  • 相同點: 都是獲取父元素下的第一個節點對象

  • 不同點:

  • firstChild: IE6、7、8 第一個元素節點; 非IE6、7、8:返回第一個元素節點或文本節點

  • firstElementChild: IE6、7、8不支持;非IE6、7、8,獲取第一個元素節點

<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>

lastChild與lastElementChild

  相同點:獲取父節點下的最后一個節點對象;

  不同點:1、lastchild:IE6,7,8:最后一個元素節點;

             非IE6,7,8:最后一個節點,文本節點或者元素節點;

      2、lastElementChild:IE6,7,8:不支持;

             非IE6,7,8:最后一個元素節點

nextSibling與nextElementChild

    - 相同點:獲取后一個兄弟節點對象;

  - 不同點:1、nextSibling:IE6,7,8:后一個兄弟元素節點;

             非IE6,7,8:后一個兄弟節點,文本節點或者元素節點;

      2、lastElementChild:IE6,7,8:不支持;

                  非IE6,7,8:后一個兄弟元素節點;

previousSibling與previousElementChild

  - 相同點:獲取前一個兄弟節點對象;

  -不同點:1、previousSibling:IE6,7,8:前一個兄弟元素節點;

             非IE6,7,8:前一個兄弟節點,文本節點或者元素節點;

      2、previousElementChild:IE6,7,8:不支持;

             非IE6,7,8:前一個兄弟元素節點;

parentNode:獲取父元素,不存在兼容性問題。

  • offsetParent:獲取第一個設置定位的父元素;
  • offsetLeft:獲取離第一個定位父元素的左距離;
    -offsetTop:獲取離第一個定位父元素的上距離;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM