1. 程式人生 > 其它 >DOM獲取頁面元素

DOM獲取頁面元素

文件物件模型(Document Object Model),是W3C阻止推薦的處理可擴充套件標記語言(HTML或者XML)的標準程式設計介面。W3C已定義了一系列的DOM介面,通過這些DOM介面可以改變網頁的內容、結構和樣式。

獲取頁面元素的方法:1.根據id獲取(getElementById()獲取元素)

<!DOCTYPE html>
<html>
 
<head>
	<meta charset="utf-8">
	<title></title>
 
</head>
 
<body>
	<div id="time">2021-10-11</div>
	<script>
		//1.文件頁面從上往下載入,所以先得有標籤  所以我們的script寫到標籤下面
		//2.get獲得element元素by通過駝峰命名法
		//3.引數id是大小寫敏感的字串
		//4.返回的是一個元素物件
		var result = document.getElementById('time');
		console.log(result);
		console.log(typeof result);
		//5.console.dir列印我們返回的元素物件更好的檢視裡面的屬性和方法
		console.dir(result);
 
	</script>
</body>
 
</html>

  

2.根據標籤名獲取(getElementsByTagName('標籤名')返回帶有指定標籤名的物件的集合)

注意:1.因為得到的是一個物件的集合,所以我們想要操作裡面的元素就需要遍歷。

   2.得到元素物件是動態的。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>獲取某類標籤元素</title>
	</head>
	<body>
		<ul>
			<li>知否知否,應是綠肥紅瘦</li>
			<li>知否知否,應是綠肥紅瘦</li>
			<li>知否知否,應是綠肥紅瘦</li>
			<li>知否知否,應是綠肥紅瘦</li>
		</ul>
		<ol id='ol'>
			<li>昨夜雨疏風驟</li>
			<li>昨夜雨疏風驟</li>
			<li>昨夜雨疏風驟</li>
			<li>昨夜雨疏風驟</li>
			<li>昨夜雨疏風驟</li>
		</ol>
		<script>
			//1.返回的是獲取元素物件的集合 以偽陣列的形式儲存的
			var lis=document.getElementsByTagName('li');
			console.log(lis);
			console.log(lis[0]);
			//2.依次列印裡面的元素物件可以採用遍歷的方式
			for(var i=0;i<lis.length;i++){
				console.log(lis[i]);
			}
			//3.如果頁面中只有一個li 返回的還是偽陣列的形式
			//4.如果頁面中沒有這個元素返回的空的偽陣列的形式
			//5.element.getElementsByTagName('標籤名');
			//var ol=document.getElementsByTagName('ol');
			//console.log(ol[0].getElementsByTagName('li'));
			var ol=document.getElementById('ol');
			console.log(ol.getElementsByTagName('li'));
			
			            //getElementById,getElementsByName,getElementsByTagName,getElementsByClassName四者之間的區別
			//getElementById():這個方法將返回一個與那個有著給定id屬性值的元素節點對應的物件。
			//getElementsByName():方法可返回帶有指定名稱的物件的集合。
			//getElementsByTagName():方法返回一個物件陣列,每個物件分別對應著文件裡有著給定標籤的一個元素。這個理解起來有點拗口。
			//W3school中是這樣定義的:此方法可返回帶有指定標籤名的物件的集合。
			//getElementsByClassName():方法返回文件中所有指定類名的元素集合,作為 NodeList 物件。
		</script>
	</body>
</html>

  

3.通過HTML5新增的方法獲取

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div class="box">盒子1</div>
		<div class="box">盒子2</div>
		<div id="nav">
			<ul>
				<li>首頁</li>
				<li>產品</li>
			</ul>
		</div>
		<script>
			//1.getElementsByClassName根據類名獲得某些元素集合
			var boxs=document.getElementsByClassName('box');
			console.log(boxs);
			//2.querySelector 返回指定選擇器的第一個元素物件
			var firstBox=document.querySelector('.box');
			console.log(firstBox);
			var nav=document.querySelector('#nav');
			console.log(nav);
			var li=document.querySelector('li');
			console.log(li);
			//3.querySelectorAll('選擇器') 返回選擇器所有元素
			var allBox=document.querySelectorAll('.box');
			console.log(allBox);
			//獲取body元素
			var bodyEle=document.body;
			console.log(bodyEle);
			//獲取HTML元素
			var htmlEle=document.documentElement;
			console.log(htmlEle);
			
		</script>
	</body>
</html>

  

getElementById, getElementsByName, getElementsByTagName, getElementsByClassName四者之間的區別

getElementById(): 這個方法將返回一個與那個有著給定id屬性值的元素節點對應的物件。

getElementsByName(): 方法可返回帶有指定名稱的物件的集合。

getElementsByTagName(): 方法返回一個物件陣列,每個物件分別對應著文件裡有著給定標籤的一個元素。這個理解起來有點拗口。

W3school中是這樣定義的:此方法可返回帶有指定標籤名的物件的集合。

getElementsByClassName(): 方法返回文件中所有指定類名的元素集合,作為 NodeList 物件。