国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

web前端javaScript筆記——(11)DOM

這篇具有很好參考價值的文章主要介紹了web前端javaScript筆記——(11)DOM。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、DOM簡介

DOM簡介
<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    
    </style>
    <script type="text/javascript">
        /*宿主對象,由瀏覽器,運(yùn)行環(huán)境為我們提供的對象,BOM對象 和 DOM對象
         DOM   document object model  文檔對象模型
         JS中通過DOM來對HTML文檔進(jìn)行操作。只要理解了DOM就可以隨心所欲的操作WEB頁面
                     文檔
			-文檔表示的就是整個的HTML網(wǎng)頁文檔,一個HTML網(wǎng)頁就是一個文檔
		 對象
			- 對象表示將網(wǎng)頁中的每一個部分,各種標(biāo)簽、屬性、文本都轉(zhuǎn)換為了一個對象
		 模型
			-使用模型來表示對象之間的關(guān)系,這樣方便我們獲取對象
         
                     轉(zhuǎn)換為對象之后,可以以純面向?qū)ο蟮姆椒ú僮骶W(wǎng)頁
         *模型
         * 
         * 節(jié)點Node,是構(gòu)成我們網(wǎng)頁的最基本的組成部分,
         * 網(wǎng)頁中的每一個部分都可以稱為是一個節(jié)點。
         * 比如:html標(biāo)簽、屬性、文本、注釋、整個文檔等都是一個節(jié)點。
		   雖然都是節(jié)點,但是實際上他們的具體類型是不同的。
		   比如:標(biāo)簽我們稱為元素節(jié)點、屬性稱為屬性節(jié)點、文本稱為文本節(jié)點、文檔稱為文檔節(jié)點。
		   節(jié)點的類型不同,屬性和方法也都不盡相同
		 網(wǎng)頁中的每個部分都是一個節(jié)點
		
		 節(jié)點:Node——構(gòu)成HTML文檔最基本的單元
		 常用節(jié)點分為四類:
		 文檔節(jié)點:整個HTML文檔
		 元素節(jié)點:HTML文檔中的標(biāo)簽
		 屬性節(jié)點:元素的屬性
		 文本節(jié)點:HTML標(biāo)簽中的文本內(nèi)容
		 
		 節(jié)點的屬性:nodeName nodeType  nodeValue是每個節(jié)點都有的屬性
		 文檔節(jié)點的nodeName是一個固定值 #document    
		 				nodeName    nodeType        nodeValue
         * 文檔節(jié)點 		#document   9 				null
         * 元素節(jié)點       		標(biāo)簽名                  1				null
         * 屬性節(jié)點		屬性名		2				null
         * 文本節(jié)點		#text		3				文本內(nèi)容
         * 通過nodeType的值可以判斷類型
         * 
         * */
        
         
    </script>
   
</head>
<body>
       <button id="btn">我是一個按鈕</button>
       <script type="text/javascript">
       	  /*瀏覽器已經(jīng)為我們提供了文檔節(jié)點對象,這個對象是window屬性
       	   可以在頁面中直接使用,文檔節(jié)點代表的是整個網(wǎng)頁*/
       	  console.log(document);    //[object HTMLDocument]
       	  /*document就是文檔節(jié)點,它代表的是整個網(wǎng)頁,通過document可以獲取到網(wǎng)頁中的
       	   任意一個對象*/
       	  //獲取到button對象
       	  var btn=document.getElementById("btn");   //通過id獲取元素
       	  console.log(btn);  //[object HTMLButtonElement]
       	  /*<button id="btn">我是一個按鈕</button>*/
       	 /*DOM中的對象都是和網(wǎng)頁中的對象是一一對應(yīng)的,這個btn現(xiàn)在就是按鈕,它兩是一回事*/
       	   //修改按鈕的文字
       	   console.log(btn.innerHTML);        //我是一個按鈕
       	   btn.innerHTML="T'm a Button";     //直接賦值修改
       	   //DOM中的btn就是網(wǎng)頁中的按鈕
       </script>
    
</body>
</html>

二、事件簡介

屬性 ????????????????????????????????????此事件發(fā)生在何時

onabort 圖像的加載被中斷。

onblur???????????????????????????????????元素失去焦點。

anchange?????????????????????????????????域的內(nèi)容被改變

onclick ?當(dāng)用戶點擊某個對象時調(diào)用的事件句柄。

ondblclick?????????????????????????????????當(dāng)用戶雙擊某個對象時調(diào)用的事件句柄。

onerror???????????????????????????????????在加載文檔或圖像時發(fā)生錯誤。

onfocus???????????????????????????????????元素獲取焦點。

onkeydown????????????????????????????????某個鍵盤按鍵被按下

onkeypress?????????????????????????????????某個健盤按健被按下并松開。

onkeyup???????????????????????????????????某個鍵盤按鍵被松開。

onload?????????????????????????????????????張頁面或一幅圖像完成加載。

onmousedown?????????????????????????鼠標(biāo)按鈕被擠下。

onmousemove?????????????????????????鼠標(biāo)被移動。

onmouseout???????????????????????????鼠標(biāo)從某元素移開。

onmouseover??????????????????????????鼠標(biāo)移到某元素之上。

onmouseup????????????????????????????鼠標(biāo)按鍵被松開。

onreset???????????????????????????????重置按紐被點擊·

onresize??????????????????????????????商口或框架被重新調(diào)整大小

onselect??????????????????????????????文本選中。

onsubmit?????????????????????????????確認(rèn)按鈕被點擊。

onunload?????????????????????????????用戶退出頁面。

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    
    </style>
    <script type="text/javascript"> 
    </script>
   
</head>
<body>
    
     <button id="btn">點我一下</button>
     <script type="text/javascript"> 
     /*瀏覽器加載頁面的時候,是從上到下一行一行記載,
      * 所以這里的<script>標(biāo)簽對寫在body中的元素標(biāo)簽下下面,這樣按鈕會先出來,在頁面加載完畢之后
      * 然后再執(zhí)行Js代碼
      * 如果寫在<head>標(biāo)簽對里面會報錯,代碼會先執(zhí)行,然后頁面再加載,然后按鈕會后出來
      * 想要把js代碼寫在<head>標(biāo)簽里面,然后等body中的頁面加載完畢之后再執(zhí)行的解決方法:
      * onload事件會在整個頁面加載完畢之后再觸發(fā)
      * 為window綁定一個onload事件
      * 
      * 下面的代碼不會立即執(zhí)行,會在整個頁面加載完之后再執(zhí)行
      * window.onload=function(){
      * 	
      *    //將js代碼寫在這里,然后將這個大的整體寫在<head>里面的<script>標(biāo)簽里面
      * }
      * */
     
    </script> 
</body>
</html>

三、文檔加載

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    
    </style>
    <script type="text/javascript"> 
    	/*想要把代碼寫在<head>標(biāo)簽里面,就統(tǒng)一把代碼寫在window.onload對應(yīng)的函數(shù)里面
    	 這樣可以保證我們的js代碼在頁面加載完畢之后再執(zhí)行
    	 onload事件會在整個頁面加載完成之后才觸發(fā)
                     為window綁定一個onload事件
                     該事件對應(yīng)的響應(yīng)函數(shù)將會在頁面加載完成之后執(zhí)行,
                     這樣可以確保我們的代碼執(zhí)行時所有的DOM對象已經(jīng)加載完畢了,
                     這樣就不會出現(xiàn)獲取不到DOM對象的情況
                     
                     寫上面的話會影響頁面加載速度,所以推薦寫到下面,但是差別不大。
                     寫下面最大的好處就是好管理,方便管理
    	 * */
    	window.onload=function(){
    		//獲取id為btn的按鈕
    		var btn=document.getElementById("btn");
    		//為按鈕綁定一個單擊響應(yīng)函數(shù)
    		btn.onclick=function(){
    			alert("hello");
    		};
    	};
    </script>
   
</head>
<body>
	<button id="btn">我是一個按鈕</button>
</body>
</html>

四、DOM查詢

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    
    </style>
    <script type="text/javascript"> 
    	/*獲取元素節(jié)點
    	 通過document對象調(diào)用
    	 1.getElementById()
    	   通過id屬性獲取一個元素節(jié)點的對象
    	 2.getElementsByTagName()
    	   通過標(biāo)簽名獲取一組元素節(jié)點對象
    	 3.getElementsByName()
    	  通過name屬性來獲取一組元素節(jié)點對象,(復(fù)數(shù))主要獲取表單項,
    	  
    	  獲取元素節(jié)點的子節(jié)點;
    	  通過具體的元素節(jié)點調(diào)用(縮小了選擇范圍)
    	  1.getElementsByTagName()
    	  -方法,返回當(dāng)前節(jié)點的指定標(biāo)簽名后代節(jié)點
    	  2.childNodes
    	  -屬性,表示當(dāng)前節(jié)點的所有子節(jié)點,都包括空白的文本節(jié)點
    	  3.firstChild
    	  -屬性,表示當(dāng)前節(jié)點的第一個子節(jié)點
    	  4.lastChild
    	  -屬性,表示當(dāng)前節(jié)點的最后一個子節(jié)點
    	  
    	  獲取父節(jié)點和兄弟節(jié)點
    	  通過具體的節(jié)點調(diào)用
    	  1.parentNode
    	  -屬性,表示當(dāng)前節(jié)點的父節(jié)點
    	  2.previousSibling
    	  -屬性,表示當(dāng)前節(jié)點的前一個兄弟節(jié)點
    	  3.nextSibling
    	  -屬性,表弟當(dāng)前節(jié)點的后一個兄弟節(jié)點
    	  
    	 */
    	 //查找#bj節(jié)點
    	 
    	 /*遇到大量重復(fù)性代碼,可以嘗試將其提取為一個函數(shù)
    	  * 
    	  * 定義一個函數(shù),專門用來為指定元素綁定單擊響應(yīng)函數(shù)
    	  * 參數(shù)idStr  要綁定單擊響應(yīng)函數(shù)的對象
    	  * fun事件的回調(diào)函數(shù),當(dāng)單擊元素時,該函數(shù)將會被觸發(fā)
    	  * 函數(shù)也是對象,是對象就可以作為參數(shù)*/
    	 
    	 function myClick(idStr,fun){
    	 	var btn=document.getElementById(idStr);
    	 	btn.onclick=fun;
    	 }
    	 window.onload=function(){
    	 	//為id為btn01的按鈕綁定一個單擊響應(yīng)函數(shù)
    	 	var btn01=document.getElementById("btn01");
    	 	btn01.onclick=function(){
    	 		//查找id為北京的節(jié)點
    	 		var bj=document.getElementById("bj");//這里寫#bj就會報錯,就什么都打印不出來
    	 		//打印bj
    	 		//innerHTML 通過這個屬性可以獲取到元素內(nèi)部的html代碼
    	 		alert(bj.innerHTML);  //打印出“北京”
    	 	};
    	 	//查找所有的li節(jié)點
    	 	//為id為btn02的按鈕綁定一個單擊響應(yīng)事件
    	 	var btn02=document.getElementById("btn02");
    	 	btn02.onclick=function(){
    	 		//查找所有l(wèi)i節(jié)點
    	 		//getElementsByTagName通過標(biāo)簽名來獲取一組節(jié)點對象,Element有s
    	 		//這個方法會給我們返回一個類數(shù)組對象,所有查詢到的元素都會封裝到對象中
    	 		//即使查詢到的元素只有一個,也會封裝到數(shù)組中
    	 		var lis=document.getElementsByTagName("li");
    	 		//打印lis
    	 	//	alert(lis.length);  //10
    	 	//遍歷lis
    	 	for(var i=0;i<lis.length;i++){
    	 		alert(lis[i].innerHTML);  //innerHTML可以獲得標(biāo)簽上的內(nèi)容
    	 	}		
    	 	};
    	 
    	     //為id為btn03的按鈕綁定一個單擊響應(yīng)函數(shù)
    	 var btn03=document.getElementById("btn03");
    	 btn03.onclick=function(){
    	 	//查找name=gender的所有節(jié)點
    	 	var inputs=document.getElementsByName("gender");
    	 //	alert(inputs.length);  //2
    	  for(var i=0;i<inputs.length;i++){
    	  	/*innerHTML用于獲取元素內(nèi)部的HTML代碼的
    	  	 input就是一個單標(biāo)簽,獲取不到innerHTML 
    	  	 對于自結(jié)束標(biāo)簽,這個屬性沒有意義
    	  	 如果需要讀取元素節(jié)點屬性。
    	  	 直接使用元素.屬性名
    	  	 所有的屬性都適合這個
    	  	 例子:元素.id  元素.name  元素.value
    	  	    注意:class屬性不能采用這種方式  class是保留字
    	  	    讀取class屬性時需要使用元素.className
    	  	    getElementById()返回的是一個元素,盡量用這個
    	  	    getElementsByTagName()、getElementsByName()返回的是一個數(shù)組
    	  	    這三個都是非常常用的方法
    	  	 */
    	  	alert(inputs[i].className);
    	  };
    	 };
    	 //為id為btn04的按鈕綁定一個單擊響應(yīng)函數(shù)
    	 //查找#city下所有l(wèi)i節(jié)點
    	 var btn04=document.getElementById("btn04");
    	 btn04.onclick=function(){
    	 	獲取id為city的元素
    	 	var city=document.getElementById("city");
    	 	//查找#city下所有的li節(jié)點,縮小了查找返回
    	 	var lis=city.getElementsByTagName("li");
    	 	//alert(lis.length);  //4
    	 	for(var i=0;i<lis.length;i++){
    	 		alert(lis[i].innerHTML);
    	 	}
    	 };
    	 //返回city下的所有子節(jié)點
    	 var btn05=document.getElementById("btn05");
    	 btn05.onclick=function(){
    	 	//獲取city節(jié)點
    	 	var city=document.getElementById("city");
    	// 	alert(city.childNodes.length); //9
    	//返回#city的所有子節(jié)點
    	//Nodes包括所有的,文本,注釋,元素都算nodes,
    	//childNodes屬性會獲取包括文本節(jié)點在內(nèi)的所有節(jié)點
    	//根據(jù)DOM標(biāo)簽標(biāo)簽間空白也會被當(dāng)成文本節(jié)點
    	//但是IE8沒有完全實現(xiàn)這個標(biāo)準(zhǔn)
    	/*注意:在IE8及以下的瀏覽器中,不會將空白文本當(dāng)成子節(jié)點
    	 所以該屬性在IE8中會返回4個子元素而不是其他瀏覽器是9個*/
    	    var cns=city.childNodes;   
    	//   alert(cns.length);//9,包括了代碼書寫時候的五個換行的空白內(nèi)容當(dāng)成了文本節(jié)點
    	 
    	 /*   for(var i=0;i<cns.length;i++){
    	    	alert(cns[i]);  
    	    }
    	*/	/*children屬性可以獲取當(dāng)前元素的所有子元素,這個屬性只包括子元素,不包括文本節(jié)點
    	,這個屬性是所有瀏覽器都兼容的,推薦使用?。?!*/
    	    var cns2=city.children;
    	 	alert(cns2.length);  //4
    	 };
    	 
    	 //返回#phone的第一個子節(jié)點
    	 var btn06=document.getElementById("btn06");
    	 btn06.onclick=function(){
    	 	//獲取id為phone的節(jié)點
    	 	var phone=document.getElementById("phone");
    	    //返回phone的第一個子節(jié)點
    	   // phone.childNodes[0];
    	   //firstChild可以獲取到當(dāng)前元素的第一個子節(jié)點,包括空白文本節(jié)點
    	    //	var fir=phone.firstChild;
    	 	//firstElements可以獲取到當(dāng)前元素的第一個子元素節(jié)點,不包括文本,元素就是標(biāo)簽
    	 	//這個方法不建議使用,IE8及以下瀏覽器不兼容
    	 	var fir=phone.firstElementChild;
    	 	alert(fir.innerHTML);
    	 	
    	 };
    	 
    	 //為id為btn07的按鈕綁定一個單擊響應(yīng)函數(shù)
    	 myClick("btn07",function(){
    	 	//獲取id為bj的父節(jié)點
    	 	var bj=document.getElementById("bj");
    	 	//返回#bj的父節(jié)點
    	 	var pn=bj.parentNode;
    	 	/*innerText
    	 	該屬性可以獲取到元素內(nèi)部的文本內(nèi)容,它和innerHTML 類似,單不同的是
    	 	它會自動將html的標(biāo)簽去掉,只返回文本*/
    	 	alert(pn);
    	 });
    	 //返回#android的前一個兄弟節(jié)點
    	 /*如果寫兩個myClick("btn08",function(){.....});
    	  * 綁定的按鈕一樣,方法不一樣,后面的會把前面的覆蓋掉*/
    	 myClick("btn08",function(){
    	 	
    	 	var and=document.getElementById("android");
    	 	var ps=and.previousSibling;//也可能獲取到空白的文本
    	 	//previousElementSibling獲取前一個兄弟元素,不包括空白文本,IE8及以下不支持
    	 	//var pe=and.previousElementSiblin;
    	 	alert(ps.innerHTML);
    	 });
    	 
    	 
    	 //讀取#username的value屬性值
    	 myClick("btn09",function(){
    	 	//獲取id為username的元素
    	 	var um=document.getElementById("username");
    	 	//讀取um的value屬性值
    	 	//文本框中的value屬性值,就是文本框中填寫的內(nèi)容
    	 	alert(um.value);
    	 	
    	 });
    	 
    	  myClick("btn10",function(){
    	 	//獲取id為username的元素
    	 	var um=document.getElementById("username");
    	 	//設(shè)置#username的value屬性值
    	 	//設(shè)置的話直接寫,屬性名=屬性值
    	     um.value="你好,今天天氣真不錯";
    	 });
    	 //獲取#bj的文本值
    	 myClick("btn11",function(){
    	 	 //獲取id為北京的元素
    	 	 var bj=document.getElementById("bj");
    	 	// alert(bj.innerText);
    	 	 // alert(bj.innerHTML);如果沒標(biāo)簽的話,這兩個沒什么區(qū)別
    	 	 /*獲取bj中的文本節(jié)點,*/
    	 	//文本節(jié)點上的文字可以用屬性名nodeValue獲取
    	 	alert(bj.firstChild.nodeValue);  //這個方法更麻煩
    	 	
    	 });
    	 
    	 };
  
    </script>
   
</head>
<body>
	<div id="total">
		<div class="inner">
			<p>你喜歡哪個城市?</p>
			<ul id="city">
				<li id="bj">北京</li>
				<li >上海</li>
				<li >東京</li>
				<li >首爾</li>
			</ul>
			<br/>
			<br/>
			<p>你喜歡哪款單機(jī)游戲?</p>
			<ul id="game">
				<li id="rl">紅警</li>
				<li>實況</li>
				<li>極品飛車</li>
			</ul>
			<br/>
			<br/>
			<p>你的手機(jī)操作系統(tǒng)是?</p>
			<ul id="phone"><li>IOS</li><li id="android">Android</li><li>Windows Phone</li></ul>
		</div>
		<div class="inner">
		     gender:
		     <input type="radio" name="gender" value="male"/>male
		     <input type="radio" name="gender" value="female"/>female
		     <br />
		     <br />
		     name:
		     <input type="text" name="name" id="username" value="abcde" />
	    </div>
	</div>
	<div id="btnList">
		<div><button id="btn01">查找#bj節(jié)點</button></div>
		<div><button id="btn02">查找所有l(wèi)i節(jié)點</button></div>
		<div><button id="btn03">查找name=gender的所有節(jié)點</button></div>
		<div><button id="btn04">查找#city下所有l(wèi)i節(jié)點</button></div>
		<div><button id="btn05">查找#city下的所有子節(jié)點</button></div>
		<div><button id="btn06">返回#phone的第一個子節(jié)點</button></div>
		<div><button id="btn07">返回#bj的父節(jié)點</button></div>
		<div><button id="btn08">返回#android的前一個兄弟節(jié)點</button></div>
		<div><button id="btn09">返回#username的value屬性值</button></div>
		<div><button id="btn10">設(shè)置#username的value屬性值</button></div>
		<div><button id="btn11">返回#bj的文本值</button></div>
		
	</div>
	
</body>
</html>

五、圖片切換的練習(xí)

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <!--難點:
    	1.把圖片的路徑存在一個數(shù)組當(dāng)中
    	首先獲取到圖片數(shù)組的第一個元素,否則用document.getElementsByTagName獲取到的是一個數(shù)組。
    	因為只能操作元素,不能操作數(shù)組。
    	var imgArr=["img/","img/","img/"];
    	2.通過用img.src的屬性值來修改要顯示的圖片
    	var index
    	index++;/index--;
    	img.src=imgAtrr[index];
    	3.靈活設(shè)置當(dāng)前圖片的總張數(shù),和當(dāng)前顯示的第幾張圖片數(shù)
    	獲取到id為info的元素
    	info.innerHTML=做一個拼串,可以靈活顯示。
    	
    	開發(fā)思路:
    	功能要綁定函數(shù),什么時候開要始功能
    	要綁定的按鈕
    -->
    <style>
       *{
       	margin:0px;
       	padding:0px;
       }
       #outer{
       	width:500px;
       	
       	margin:50px auto;
       	padding:10px;
       	background-color: greenyellow;
       	/*設(shè)置內(nèi)斂樣式文本的居中*/
        text-align: center;
        background-size:cover;
        
       }
       img{
       	width:500px;
       	height:400px;
       	
       }
    </style>
    <script type="text/javascript"> 
    	
    	 window.onload=function(){
    	 
    	 	//獲取img標(biāo)簽
    	// 	var img=document.getElementsByTagName("img");//這樣獲取到的是數(shù)組
    	//哪怕只有一個元素,上面這種寫法獲取到的也是數(shù)組
    	 	
    	 	//是要獲取數(shù)組的元素,而不是數(shù)組。
    	 	//下面這樣的寫法獲取到的就是元素
    	 	var img=document.getElementsByTagName("img")[0];
    	 	//創(chuàng)建一個數(shù)組,用來保存圖片路徑
    	 	var imgArr=["img/0vfvn55rfey0vfvn55rfey.jpg","img/011b915f101bf8a801206621f7be55.jpg@3000w_1l_0o_100sh.jpg","img/u=1654698843,1250978122&fm=253&fmt=auto&app=120&f=JPEG.webp"
    	 	,"img/u=3784956362,763614624&fm=253&fmt=auto&app=120&f=JPEG.webp","img/u=4076188782,4102717595&fm=253&fmt=auto&app=138&f=JPEG.webp","img/u=2419341326,3742894269&fm=253&fmt=auto&app=120&f=JPEG.webp"];
    	   //創(chuàng)建一個變量,來保存當(dāng)前正在顯示的圖片的索引。
    	   var index=0;
    	   
    	   //設(shè)置提示文字
    	   //獲取id為info的標(biāo)簽
    	   var info=document.getElementById("info");
    	   
    	   	/*點擊按鈕,切換圖片*/
    	 	//獲取兩個按鈕
    	 	var prev=document.getElementById("prev");
    	 	var next=document.getElementById("next");
    	 	//分別為兩個按鈕綁定單擊響應(yīng)函數(shù)
    	 	prev.onclick=function(){
    	 		if(index>0){
    	 			 index--;
    	 		}else{
    	 			index=imgArr.length-1;
    	 		}
             
              img.src=imgArr[index];
              每次點擊按鈕的時候,都重新設(shè)置信息
              info.innerHTML="一共有"+imgArr.length+"張圖片,現(xiàn)在是第"+(index+1)+"張圖片";
    	 	};
    	 	next.onclick=function(){
    	 		
    	 		//切換圖片就是修改imgd的src屬性
    	 		//修改的的方法就是屬性名=屬性值
    	 		if(index<imgArr.length-1){
    	 			index++;
    	 		}else{
    	 			index=0;
    	 		}
    	 	
    	 		img.src=imgArr[index];
    	 		//每次點擊按鈕的時候,都重新設(shè)置信息
    	 		info.innerHTML="一共有"+imgArr.length+"張圖片,現(xiàn)在是第"+(index+1)+"張圖片";
    	 		
    	 	};
    	 	//切換圖片就是修改img標(biāo)簽的src屬性
    	 	
    	 };
  
    </script>
   
</head>
<body>
	<div id="outer">
		<p id="info"></p>
		<img src="img/011b915f101bf8a801206621f7be55.jpg@3000w_1l_0o_100sh.jpg" alt="貓">
		<button id="prev">上一張</button>
		<button id="next">下一張</button>
	</div>	
</body>
</html>

六、全選練習(xí)

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    
    </style>
    <script type="text/javascript"> 
    	window.onload=function(){
    		var items=document.getElementsByName("items");
    		//全選/全不選按鈕
    		var checkedAllBox=document.getElementById("checkedAllBox");
    		/*全選按鈕
    		 -點擊按鈕以后,四個多選框全都被選中*/
    		var checkedAllBtn=document.getElementById("checkedAllBtn");
    		checkedAllBtn.onclick=function(){
    			//獲取四個多選框items
    			
    		
    			//設(shè)置四個多選框變成選中狀態(tài)
    			//通過多選框的checked屬性可以來獲取或設(shè)置多選框的選中狀態(tài)
    			for(var i=0;i<items.length;i++){
    				items[i].checked=true;
    			}
    			
    			checkedAllBox.checked=true;
    			
    		};
    		var checkedNoBtn=document.getElementById("checkedNoBtn");
    		checkedNoBtn.onclick=function(){

    			//設(shè)置四個多選框變成不選中狀態(tài)
    			for(var i=0;i<items.length;i++){
    				items[i].checked=false;
    			}
    			
    			checkedAllBox.checked=false;
    		};
    		//反選
    		var checkedRevBtn=document.getElementById("checkedRevBtn");
    		checkedRevBtn.onclick=function(){
    				//將checkedAllBox設(shè)置為選中狀態(tài)
    			checkedAllBox.checked=true;
    			for(var i=0;i<items.length;i++){
    				items[i].checked=!items[i].checked;
    				//判斷四個多選框是否全選
    	   			//只要有一個沒選中就不是
    	   			if(!items[i].checked){
    	   				//一旦進(jìn)入判斷,則證明不是全選狀態(tài)
    	   				//將checkedAllBox設(shè)置為沒選中狀態(tài)
    	   				checkedAllBox.checked=false;
    	   				
    	   			}
    			}
    			//在反選時也需要判斷四個多選框是否全都選中
    		
    			
    		}; 
    		/*提交按鈕:
    		 點擊按鈕之后,將所有選中的多選框彈出*/
    		var sendBtn=document.getElementById("sendBtn");
    		sendBtn.onclick=function(){
    			//遍歷items
    			for(var i=0;i<items.length;i++){
    				
    				if(items[i].checked){
    					alert(items[i].value);
    				}
    			}
    		};
    		//全選/全不選
    		//當(dāng)它選中時候,其余的也選中,當(dāng)它取消時其余的也取消
    	
    		checkedAllBox.onclick=function(){
    			//this===checkedAllBox
    			//在事件的響應(yīng)函數(shù)中,響應(yīng)函數(shù)是給誰綁定的this就是誰
    			for(var i=0;i<items.length;i++){
    				items[i].checked=this.checked;
    			}
    		};
    
    	   //6.items
    	   /*如果四個多選框都選中,則checkedAllBox也可以選中
    	    如果四個多選框都沒選中,則checkedBox也不應(yīng)該選中*/
    	   for(var i=0;i<items.length;i++){
    	   	items[i].onclick=function(){
    	   		//將checkedAllBox設(shè)置為選中狀態(tài)
    	   		checkedAllBox.checked=true;
    	   		//判斷四個多選框是否全選
    	   		for(var j=0;j<items.length;j++){
    	   			//判斷四個多選框是否全選
    	   			//只要有一個沒選中就不是
    	   			if(!items[j].checked){
    	   				//一旦進(jìn)入判斷,則證明不是全選狀態(tài)
    	   				//將checkedAllBox設(shè)置為沒選中狀態(tài)
    	   				checkedAllBox.checked=false;
    	   				//一旦進(jìn)入判斷,則已經(jīng)得出結(jié)果,不用再繼續(xù)執(zhí)行循環(huán)
    	   				break;
    	   			}
    	   		}
    	   	};
    	   }
    	
    	};
  
    </script>
   
</head>
<body>
	<form method="post" action="">
		你愛好的運(yùn)動是?<input type="checkbox"  id="checkedAllBox"/>全選/全不選
		<br />
		<input type="checkbox" name="items" value="足球"/>足球
		<input type="checkbox" name="items" value="籃球"/>籃球
		<input type="checkbox" name="items" value="羽毛球"/>羽毛球
		<input type="checkbox" name="items" value="乒乓球"/>乒乓球
		<br />
		<input type="button"  id="checkedAllBtn" value="全  選"/>
		<input type="button"  id="checkedNoBtn" value="全不選"/>
		<input type="button"  id="checkedRevBtn" value="反選"/>
		<input type="button"  id="sendBtn" value="提交"/>
	</form>
</body>
</html>

七、DOM查詢的剩余方法

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    
    </style>
    <script type="text/javascript"> 
    	window.onload=function(){
    		/*document的屬性
    		 -body
    		 	-寫法一:document.body
    		 	-寫法二:document.getElementsByTagName("body")[0]
    		 -documentElement
    		 	-document.documentElement保存的是html根標(biāo)簽
    		 -all
    		 	-寫法一:document.all
    		 	-寫法二:document.getElementsByTagName("*")
    		 document.getElementsByClassName()  不支持IE8及以下
    		 document.querySelector()     只查第一個    支持IE8及以下
    		 document.querySelectorAll()  即便有多個,也會封裝到數(shù)組中返回 支持IE8及以下
    		 
    		 * 
    		 * */
    		//獲取body標(biāo)簽
    		//不寫[0]獲取到的是一個數(shù)組,因為<body>標(biāo)簽只有一個,所以寫[0]
    		//方法一
    		//var body=document.getElementsByTagName("body")[0];
    		/*方法二:
    		 * 在document中有一個屬性body,它保存的是body的引用
    		 */
    		var body=document.body;//想要獲取body,可以直接document.body
    		//documentElement 文本元素
    		//document.documentElement保存的是html根標(biāo)簽
    		var html=document.documentElement;  //html是根標(biāo)簽
    		console.log(html);
    		/*document.all代表的是頁面所有的元素(標(biāo)簽)*/
    		//方法一(更簡單)
    		var all=document.all;
    		//console.log(all);   //undefined
    		//console.log(typeof all);   //undefined
    		console.log(all.length);    //7
    		for(var i=0;i<all.length;i++){
    			console.log(all[i]);
    		}
    		/* [object HTMLHtmlElement]
    		 * [object HTMLHeadElement]
    		 * [object HTMLMetaElement]
    		 * [object HTMLTitleElement]
    		 * [object HTMLStyleElement]
    		 * [object HTMLScriptElement]
    		 * [object HTMLBodyElement]
    		 */
    		//方法二
    		all=document.getElementsByTagName("*"); *表示所有元素
    		console.log(all.length);    //7
    		console.log(all);            //[object HTMLCollection]
    		
    		/*根據(jù)元素的class屬性值查詢一組元素節(jié)點對象
    		 * document.getElementsByClassName()可以根據(jù)class屬性值獲取一組元素節(jié)點對象
    		 * 但是該方法不支持IE8及以下的瀏覽器
    		 */
    		var box1=document.getElementsByClassName("box1");
    		console.log(box1.length);//1
    		
    		var div=document.getElementsByTagName("div");
    		console.log(div.length);//3
    		
    		//獲取class為box1中的所有div
    		//.box1 div
    		/*document.querySelector()這個方法是很強(qiáng)強(qiáng)大的
    		 需要一個選擇器的字符串作為參數(shù),可以根據(jù)一個CSS選擇器來查詢你一個元素節(jié)點對象
    		 雖然IE8中沒有g(shù)etElementsByClassName(),但是可以使用querySelector()代替
    		 這個方法很靈活,也可以根據(jù)id,標(biāo)簽名來查詢
    		 使用該方法總會返回唯一的一個元素,如果滿足條件的元素有多個,那么它只會返回第一個
    		 */
    		var div=document.querySelector(".box1 div");
    		console.log(div.length);
    		console.log(div);                 //[object HTMLDivElement]
    		console.log(div.innerHTML);  //我是box1中的div
    		
    		var box1=document.querySelector(".box1");
    		console.log(box1);    //[object HTMLDivElement]
    		console.log(box1.innerHTML); 
    		/*我是第一個box1
	         	<div>我是box1中的div</div>*/
	         	//必須寫.  .box1,否則獲取的長度為0
	         	/*document.querySelectorAll()
	         	 * 該方法和querySelector()用法類似,不同的是它會將符合條件的元素封裝到一個數(shù)組中返回
	         	 * document.querySelectorAll()查詢到的是多個
	         	 * document.querySelector()查詢到的是一個
	         	 */
    		var box1=document.querySelectorAll(".box1");  //支持IE8以上的瀏覽器
    		console.log(box1.length); //3
    		console.log(box1);   //[object NodeList]
    		
    		var box2=document.querySelectorAll("#box2");  //支持IE8以上的瀏覽器
    		console.log(box2.length); //1
    		console.log(box2);   //[object NodeList]
    		//document.querySelectorAll根據(jù)id查詢,只有唯一的一個,返回的也是數(shù)組
    		
    	};
    </script>
   
</head>
<body>
	<div class="box1">
		我是第一個box1
		<div>我是box1中的div</div>
	</div>
	<div class="box1">
		<div>我是box1中的div</div>
	</div>
	<div class="box1">
		<div>我是box1中的div</div>
	</div>
	<div id="box2">
		<div>我是box2中的div</div>
	</div>
</body>
</html>

八、DOM增刪改

?

getElementById() ???????返回帶有指定 ID 的元素。

getElementsByTagName() 返回包含帶有指定標(biāo)簽名稱的所有元素的節(jié)點列表(集合/節(jié)點數(shù)組)。

getElementsByClassName() ?返回包含帶有指定類名的所有元素的節(jié)點列表。

appendChild() ???????????把新的子節(jié)點添加到指定節(jié)點。

removeChild() ???????????刪除子節(jié)點?????????

replaceChild() ???????????替換子節(jié)點。

insertBefore() ???????????在指定的子節(jié)點前面插入新的子節(jié)點。

createAttribute() ?????????創(chuàng)建屬性節(jié)點。

createElement() ?????????創(chuàng)建元素節(jié)點。

createTextNode()?????????創(chuàng)建文本節(jié)點。

getAttribute() ???????????返回指定的屬性值。

setAttribute() ???????????把指定屬性設(shè)置或修改為指定的值。

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    
    </style>
    <script type="text/javascript"> 
    	window.onload=function(){
    		
    		    var li=document.createElement("li");
    			//創(chuàng)建廣州節(jié)點文本
    			/*document.createTextNode();
    			 可以用來創(chuàng)建一個文本節(jié)點對象
    			 需要一個文本內(nèi)容作為參數(shù),將會根據(jù)該內(nèi)容創(chuàng)建文本節(jié)點,并將新的節(jié)點返回*/
    			var gzText=document.createTextNode("廣州");
    			//將gzText設(shè)置li的子節(jié)點
    			/*appendChild()
    			 向一個父節(jié)點中添加一個新的子節(jié)點
    			 用法:父元素.appendChild(子節(jié)點)*/
    			/*先創(chuàng)建節(jié)點,再創(chuàng)建文本,然后拼在一塊兒*/
    			li.appendChild(gzText);
    		    //獲取id為city的節(jié)點
    			var city=document.getElementById("city");
    		    var bj=document.getElementById("bj");
    		
    		//創(chuàng)建一個“廣州”節(jié)點,添加到#city下
    		myClick("btn01",function(){
    			
    			// 創(chuàng)建廣州節(jié)點<li>廣州</li>
    			//創(chuàng)建li元素節(jié)點
    			/*document.createElement()
    	                         可以用于創(chuàng)建一個元素節(jié)點對象
    	                         它需要一個標(biāo)簽名作為參數(shù),將會根據(jù)該標(biāo)簽名創(chuàng)建元素節(jié)點對象
    	                         并將創(chuàng)建好的對象作為返回值返回
    	         * */
    			
    		    //將廣州添加到city下
    		    city.appendChild(li);
    			
    		});
    		
    		//將”廣州“節(jié)點添加到#bj前面
    		myClick("btn02",function(){
    			
    			/*insertBefore()在指定的子節(jié)點前面插入新的子節(jié)點,所有是父節(jié)點來調(diào)用
    			 語法:
    			 父節(jié)點.insertBefore(新節(jié)點,舊節(jié)點)*/
    			city.insertBefore(li,bj);  //新節(jié)點在前面,舊節(jié)點在后面
    		});
    		
    		//使用”廣州“節(jié)點替換北京節(jié)點
    		myClick("btn03",function(){
    			/*replaceChild()
    			 可以使用指定的子節(jié)點替換已有的子節(jié)點
    			 語法:
    			 父節(jié)點.replaceChild(新節(jié)點,舊節(jié)點)*/
    			city.replaceChild(li,bj);
    		});
    		
    		//刪除北京節(jié)點
    		myClick("btn04",function(){
    			/*removeChild()可以刪除一個子節(jié)點
    			 語法:父節(jié)點.removeChild(子節(jié)點)*/
    		//	city.removeChild(bj);  //這是知道父元素是什么的情況
    			
    			//如果不知道bj的父節(jié)點是什么,這種方式更方便簡單一點兒
    			bj.parentNode.removeChild(bj);
  
    		});
    		
    		//讀取#city內(nèi)的HTML代碼
    		myClick("btn05",function(){
    			alert(city.innerHTML);
    		});
    		
    		//設(shè)置#bj內(nèi)的HTML代碼
    		myClick("btn06",function(){
    			bj.innerHTML="海淀";
    		});
    		
    		myClick("btn07",function(){
    			//向city中添加廣州,在原來的基礎(chǔ)上增加廣州
    	//		city.innerHTML+="<li>廣州</li>";
    			/*使用innerHTML 也可以完成DOM的增刪改的相關(guān)操作
    			 這個操作的本質(zhì)是將之前的內(nèi)容都刪了,然后將增加廣州之后的內(nèi)容(都是新的)再
    			 全部寫到<city>里面,如果舊的綁定事件了,這么一操作就都沒有了
    			 不建議使用
    			 
    			 上面那種寫法,舊的東西不改變,只是新增了”廣州“這個新的
    			 
    			 一般我們會兩種方式結(jié)合使用
    			 * */
    			//創(chuàng)建一個li
    			var li=document.createElement("li");
    			//向li中設(shè)置文本
    			li.innerHTML="廣州";
    			//將li添加到city中
    			city.appendChild(li);
    		});
    		//為所有的獲取按鈕和綁定函數(shù)寫一個可以共用的方法
    		function myClick(idStr,fun){
    			var btn=document.getElementById(idStr);
    			btn.onclick=fun;
    		}
    	};
    </script>
   
</head>
<body>
	<div class="inner">
			<p>你喜歡哪個城市?</p>
			<ul id="city">
				<li id="bj">北京</li>
				<li >上海</li>
				<li >東京</li>
				<li >首爾</li>
			</ul>
	</div>
	<button id="btn01">創(chuàng)建一個“廣州”節(jié)點添加到#city下</button>
	<button id="btn02">將“廣州”節(jié)點插入到#bj前面</button>
	<button id="btn03">使用“廣州”節(jié)點替換#bj節(jié)點</button>
	<button id="btn04">刪除#bj節(jié)點</button>
	<button id="btn05">讀取#city內(nèi)的HTML代碼</button>
	<button id="btn06">設(shè)置#bj內(nèi)的HTML代碼</button>
	<button id="btn07">創(chuàng)建一個“廣州”節(jié)點添加到#city下</button>
</body>
</html>

九、添加刪除記錄-刪除、添加、修改

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    	#employeeTable{
    		border:1px solid black;	
    		margin:0 auto;
    	}
    	td,th{
    		border:1px solid black;	
    		cellspacing:0;
    	}
    	#formDiv{
    		border:1px solid black;	
    		text-align: center;
    		width:300px;
    		height:300px;
    		margin:10px auto;	
    	}
    </style>
    <script type="text/javascript"> 
    	window.onload=function(){
    		/*點擊超鏈接。刪除一個員工的信息*/
    		//獲取所有的超鏈接
    		/*刪除tr的響應(yīng)函數(shù)*/
    		function delA(){
    			var allA=document.getElementsByTagName("a");  //得到的是一個數(shù)組
    		//為每個超鏈接都綁定一個單擊響應(yīng)函數(shù)
    		for(var i=0;i<allA.length;i++){
    			allA[i].onclick=function(){
    				
    				//點擊超鏈接之后,刪除超鏈接所在的那一行
    				//this代表的就是a,這里我們點擊哪個超鏈接this就是誰
    				//獲取當(dāng)前tr
    				var tr=this.parentNode.parentNode;
    				//獲取要刪除的員工的名字
    			//方法一	var name=tr.getElementsByTagName("td")[0].innerHTML;
    			    var name=tr.children[0].innerHTML;
    				//刪除之前彈出提示框
    				/*confirm()用于彈出一個帶有確認(rèn)和取消按鈕的提示框
    				 需要一個字符串作為參數(shù),該字符串將會作為提示文字顯示出來
    				 如果用戶點擊確認(rèn)則會fanhuitrue,如果點擊取消則返回false*/
    				var flag=confirm("確認(rèn)刪除"+name+"嗎?");
    				if(flag){
    					//刪除tr
    				    tr.parentNode.removeChild(tr);
    				
    				}
    				/*點擊超鏈接以后,超鏈接會跳轉(zhuǎn)頁面,這個是超鏈接的默認(rèn)行為
    				 此時我們不希望出現(xiàn)默認(rèn)行為,可以通過在響應(yīng)函數(shù)的最后return false來取消默認(rèn)行為*/
    				return false;  //取消跳轉(zhuǎn)的默認(rèn)行為
    			};  
    		};
    		}
    		
    		/*添加員工功能;
    		 -點擊按鈕以后,將員工的信息添加到表格中*/
    		//為提交按鈕,綁定一個單擊響應(yīng)函數(shù)
    		var addEmpButton=document.getElementById("addEmpButton");
    		addEmpButton.onclick=function(){
    			//獲取用戶添加的員工信息
    			//獲取員工的名字
    			//文本框的內(nèi)容就是文本框的value屬性
    			var name=document.getElementById("empName").value;
    	//		alert(name);//aaa
    			//獲取員工的郵箱
    			var email=document.getElementById("email").value;
    			//獲得員工的薪資
    			var salary=document.getElementById("salary").value;
    			
    			//創(chuàng)建一個a元素
    			var a=document.createElement("a");
    			//需要將獲取到的信息保存到tr中
    			//創(chuàng)建一個tr
    			var tr=document.createElement("tr");
    			//創(chuàng)建4個td
    			var nameTd=document.createElement("td");
    			var emailTd=document.createElement("td");
    			var salaryTd=document.createElement("td");
    			var aTd=document.createElement("td");
    			
    			//創(chuàng)建文本節(jié)點
    			var nameText=document.createTextNode(name);
    			var emailText=document.createTextNode(email);
    			var salaryText=document.createTextNode(salary);
    			var delText=document.createTextNode("Delete");
    			
    			//把文本節(jié)點添加到td中
    			nameTd.appendChild(nameText);
    			emailTd.appendChild(emailText);
    			salaryTd.appendChild(salaryText);
    			
    			//向a中添加文本
    			a.appendChild(delText);
    			//將a添加到td中
    			aTd.appendChild(a);
    			
    			//把td添加到tr中
    			tr.appendChild(nameTd);
    			tr.appendChild(emailTd);
    			tr.appendChild(salaryTd);
    			tr.appendChild(aTd);
    			
    			//向a中添加href屬性
    			a.href="javascript:;"
    			//為新添加的a再綁定一次單擊響應(yīng)函數(shù)
    			a.onclick=delA;
    			
    			
    			//獲取table
    			var employeeTable=document.getElementById("employeeTable");
    			//獲取employeeTable中的tbody
    			var tbody=employeeTable.getElementsByTagName("tbody")[0];
    			//將tr添加到tbody中
    			tbody.appendChild(tr);
    			
    		};
    		
    	};
    </script>
   
</head>
<body>
	<table id="employeeTable" cellspacing="0">
		<tr>
			<th>Name</th>
			<th>Email</th>
			<th>Salary</th>
			<th>&nbsp;</th>
		</tr>
		<tr>
			<td>Tom</td>
			<td>tom@tom.com</td>
			<td>5000</td>
			<td><a href="deleteEmp?id=001">Delete</a></td>
		</tr>
		<tr>
			<td>Jerry</td>
			<td>jerry@sohu.com</td>
			<td>8000</td>
			<td><a href="deleteEmp?id=002">Delete</a></td>
		</tr>
		<tr>
			<td>Bob</td>
			<td>bob@tom.com</td>
			<td>10000</td>
			<!--
                              也可以通過<a href="javascript:;"></a>取消默認(rèn)的跳轉(zhuǎn)行為
            -->
			<td><a href="javascript:;">Delete</a></td>
		</tr>
	</table>
	<div id="formDiv">
		<h4>添加新員工</h4>
		<table>
			<tr>
				<td class="word">name:</td>
				<td class="inp">
					<input type="text" name="empName" id="empName">
				</td>
			</tr>
			<tr>
				<td class="word">email:</td>
				<td class="inp">
					<input type="text" name="email" id="email">
				</td>
			</tr>
			<tr>
				<td class="word">salary:</td>
				<td class="inp">
					<input type="text" name="salary" id="salary">
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<button id="addEmpButton" value="abc">
						Submit
					</button>
				</td>
			</tr>
		</table>
	</div>
</body>
</html>

上述功能的另一種實現(xiàn)方式文章來源地址http://www.zghlxwxcb.cn/news/detail-805992.html

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>
       
    </title>
    <style>
    	#employeeTable{
    		border:1px solid black;	
    		margin:0 auto;
    	}
    	td,th{
    		border:1px solid black;	
    		cellspacing:0;
    	}
    	#formDiv{
    		border:1px solid black;	
    		text-align: center;
    		width:300px;
    		height:300px;
    		margin:10px auto;	
    	}
    </style>
    <script type="text/javascript"> 
    	window.onload=function(){
    		/*點擊超鏈接。刪除一個員工的信息*/
    		//獲取所有的超鏈接
    		/*刪除tr的響應(yīng)函數(shù)*/
    		function delA(){
    			var allA=document.getElementsByTagName("a");  //得到的是一個數(shù)組
    		//為每個超鏈接都綁定一個單擊響應(yīng)函數(shù)
    		for(var i=0;i<allA.length;i++){
    			allA[i].onclick=function(){
    				
    				//點擊超鏈接之后,刪除超鏈接所在的那一行
    				//this代表的就是a,這里我們點擊哪個超鏈接this就是誰
    				//獲取當(dāng)前tr
    				var tr=this.parentNode.parentNode;
    				//獲取要刪除的員工的名字
    			//方法一	var name=tr.getElementsByTagName("td")[0].innerHTML;
    			    var name=tr.children[0].innerHTML;
    				//刪除之前彈出提示框
    				/*confirm()用于彈出一個帶有確認(rèn)和取消按鈕的提示框
    				 需要一個字符串作為參數(shù),該字符串將會作為提示文字顯示出來
    				 如果用戶點擊確認(rèn)則會fanhuitrue,如果點擊取消則返回false*/
    				var flag=confirm("確認(rèn)刪除"+name+"嗎?");
    				if(flag){
    					//刪除tr
    				    tr.parentNode.removeChild(tr);
    				
    				}
    				/*點擊超鏈接以后,超鏈接會跳轉(zhuǎn)頁面,這個是超鏈接的默認(rèn)行為
    				 此時我們不希望出現(xiàn)默認(rèn)行為,可以通過在響應(yīng)函數(shù)的最后return false來取消默認(rèn)行為*/
    				return false;  //取消跳轉(zhuǎn)的默認(rèn)行為
    			};  
    		};
    		}
    		
    		/*添加員工功能;
    		 -點擊按鈕以后,將員工的信息添加到表格中*/
    		//為提交按鈕,綁定一個單擊響應(yīng)函數(shù)
    		var addEmpButton=document.getElementById("addEmpButton");
    		addEmpButton.onclick=function(){
    			//獲取用戶添加的員工信息
    			//獲取員工的名字
    			//文本框的內(nèi)容就是文本框的value屬性
    			var name=document.getElementById("empName").value;
    	//		alert(name);//aaa
    			//獲取員工的郵箱
    			var email=document.getElementById("email").value;
    			//獲得員工的薪資
    			var salary=document.getElementById("salary").value;
    			
    			//需要將獲取到的信息保存到tr中
    			//創(chuàng)建一個tr
    			var tr=document.createElement("tr");
    			
    			//設(shè)置tr中的內(nèi)容
    			tr.innerHTML="<td>"+name+"</td>"+
    							"<td>"+email+"</td>"+
    							"<td>"+salary+"</td>"+
    							"<td><a href='javascript:;'>Delete</a></td>";
    			a=tr.getElementsByTagName("a")[0];
    			a.onclick=delA;
    			
    			//獲取table
    			var employeeTable=document.getElementById("employeeTable");
    			//獲取employeeTable中的tbody
    			var tbody=employeeTable.getElementsByTagName("tbody")[0];
    			//將tr添加到tbody中
    			tbody.appendChild(tr);
    		/*這樣寫也可以,不過不推薦	
    		 * tbody.innerHTML+="<tr>"+
    							"<td>"+name+"</td>"+
    							"<td>"+email+"</td>"+
    							"<td>"+salary+"</td>"+
    							"<td><a href='javascript:;'>Delete</a></td>"
    							+"</tr>";
    		*/
    		};
    		
    	};
    </script>
   
</head>
<body>
	<table id="employeeTable" cellspacing="0">
		<tr>
			<th>Name</th>
			<th>Email</th>
			<th>Salary</th>
			<th>&nbsp;</th>
		</tr>
		<tr>
			<td>Tom</td>
			<td>tom@tom.com</td>
			<td>5000</td>
			<td><a href="deleteEmp?id=001">Delete</a></td>
		</tr>
		<tr>
			<td>Jerry</td>
			<td>jerry@sohu.com</td>
			<td>8000</td>
			<td><a href="deleteEmp?id=002">Delete</a></td>
		</tr>
		<tr>
			<td>Bob</td>
			<td>bob@tom.com</td>
			<td>10000</td>
			<!--
                              也可以通過<a href="javascript:;"></a>取消默認(rèn)的跳轉(zhuǎn)行為
            -->
			<td><a href="javascript:;">Delete</a></td>
		</tr>
	</table>
	<div id="formDiv">
		<h4>添加新員工</h4>
		<table>
			<tr>
				<td class="word">name:</td>
				<td class="inp">
					<input type="text" name="empName" id="empName">
				</td>
			</tr>
			<tr>
				<td class="word">email:</td>
				<td class="inp">
					<input type="text" name="email" id="email">
				</td>
			</tr>
			<tr>
				<td class="word">salary:</td>
				<td class="inp">
					<input type="text" name="salary" id="salary">
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<button id="addEmpButton" value="abc">
						Submit
					</button>
				</td>
			</tr>
		</table>
	</div>
</body>
</html>

到了這里,關(guān)于web前端javaScript筆記——(11)DOM的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 前端學(xué)習(xí)記錄~2023.8.3~JavaScript重難點實例精講~第5章 DOM與事件

    前端學(xué)習(xí)記錄~2023.8.3~JavaScript重難點實例精講~第5章 DOM與事件

    本章是第五章DOM與事件相關(guān)的內(nèi)容。 DOM是文檔對象模型,全稱為Document Object Model。DOM用一個邏輯樹來表示一個文檔,樹的每個分支終點都是一個節(jié)點,每個節(jié)點都包含著對象。DOM提供了對文檔結(jié)構(gòu)化的表述,通過綁定不同的事件可以改變文檔的結(jié)構(gòu)、樣式和內(nèi)容,從而能實現(xiàn)

    2024年02月12日
    瀏覽(25)
  • web前端框架Javascript之JavaScript 異步編程史

    web前端框架Javascript之JavaScript 異步編程史

    早期的 Web 應(yīng)用中,與后臺進(jìn)行交互時,需要進(jìn)行 form 表單的提交,然后在頁面刷新后給用戶反饋結(jié)果。在頁面刷新過程中,后臺會重新返回一段 HTML 代碼,這段 HTML 中的大部分內(nèi)容與之前頁面基本相同,這勢必造成了流量的浪費,而且一來一回也延長了頁面的響應(yīng)時間,總

    2024年02月14日
    瀏覽(28)
  • Web前端-JavaScript

    Web前端-JavaScript

    目錄 1 概述 2 HTML嵌入JS代碼三種方式 2.1 第一種方式 2.2 第二種方式 2.3 第三種方式 3 變量 4 數(shù)據(jù)類型 4.1 概述 4.2 Number數(shù)據(jù)類型? 4.3 幾個值得注意的函數(shù) 4.4 Boolean數(shù)據(jù)類型? 4.5 String數(shù)據(jù)類型 4.6 關(guān)于Object類型 4.7 NaN、undefined、null的區(qū)別 4 函數(shù) 5 事件 5.1 JS中有哪些常用的事件

    2024年02月09日
    瀏覽(24)
  • [HTML]Web前端開發(fā)技術(shù)11(HTML5、CSS3、JavaScript )頁面布局設(shè)計 “三行模式”或“三列模式”“三行二列”“三行三列”模式 多行多列復(fù)雜模式水平導(dǎo)航菜單——喵喵畫網(wǎng)頁

    [HTML]Web前端開發(fā)技術(shù)11(HTML5、CSS3、JavaScript )頁面布局設(shè)計 “三行模式”或“三列模式”“三行二列”“三行三列”模式 多行多列復(fù)雜模式水平導(dǎo)航菜單——喵喵畫網(wǎng)頁

    希望你開心,希望你健康,希望你幸福,希望你點贊! 最后的最后,關(guān)注喵,關(guān)注喵,關(guān)注喵,佬佬會看到更多有趣的博客哦?。?! 喵喵喵,你對我真的很重要! 目錄 前言 頁面布局設(shè)計 “三行模式”或“三列模式” “三行二列”、“三行三列”模式 多行多列復(fù)雜模式 導(dǎo)

    2024年02月02日
    瀏覽(41)
  • web前端Javascript—7道關(guān)于前端的面試題

    本文主要是web前端Javascript—的面試題,附上相關(guān)問題以及解決答案,希望對大家web前端Javascript閉包的學(xué)習(xí)有所幫助。 每個JavaScript 程序員都必須知道閉包是什么。在 JavaScript 面試中,你很可能會被問到的問題 以下是 7 個有關(guān) JavaScript的面試題,比較有挑戰(zhàn)性。不要查看答案

    2024年02月03日
    瀏覽(98)
  • 2023年web前端開發(fā)之JavaScript進(jìn)階(一)

    2023年web前端開發(fā)之JavaScript進(jìn)階(一)

    接上篇博客進(jìn)行學(xué)習(xí),通俗易懂,詳細(xì) 博客地址: 2023年web前端開發(fā)之JavaScript基礎(chǔ)(五)基礎(chǔ)完結(jié)_努力的小周同學(xué)的博客-CSDN博客 學(xué)習(xí) 作用域 、變量提升、 閉包 等語言特征,加深對 JavaScript 的理解,掌握變量賦值、函數(shù)聲明的簡潔語法, 降低代碼的冗余度 。 理解作用域?qū)Τ绦?/p>

    2024年02月03日
    瀏覽(37)
  • web前端框架JS學(xué)習(xí)之JavaScript類型轉(zhuǎn)換

    web前端框架JS學(xué)習(xí)之JavaScript類型轉(zhuǎn)換

    vascript有多種數(shù)據(jù)類型,如字符串、數(shù)字、布爾等,可以通過typeof語句來查看變量的數(shù)據(jù)類型。數(shù)據(jù)類型轉(zhuǎn)換就是數(shù)據(jù)類型之間相互轉(zhuǎn)換,比如把數(shù)字轉(zhuǎn)成字符串、把布爾值轉(zhuǎn)成字符串、把字符串轉(zhuǎn)成數(shù)字等,這在工作也是經(jīng)常碰到的。 本期我們就給大家說說web前端框架JS學(xué)

    2024年02月10日
    瀏覽(89)
  • 前端進(jìn)化筆記-JavaScript(三)

    人類在白色的底色上描繪圖畫,地球在黑色的底色上創(chuàng)造生命。 JavaScript的變量可以說是獨樹一幟。只需要一個(或兩個等)(const,let)就可以創(chuàng)建變量,創(chuàng)建時不考慮變量的類型,這是其他語言少有的強(qiáng)大功能。當(dāng)然強(qiáng)大的功能總是伴隨著問題。 原始值:Undefined,

    2024年02月08日
    瀏覽(25)
  • 一文讀懂JavaScript DOM節(jié)點操作(JavaScript DOM節(jié)點操作詳解)

    一文讀懂JavaScript DOM節(jié)點操作(JavaScript DOM節(jié)點操作詳解)

    一、什么是節(jié)點 DOM模型是樹狀結(jié)構(gòu)模型,二組成這棵樹的就是一個個點,在網(wǎng)絡(luò)術(shù)語中稱之為節(jié)點。 節(jié)點是一個模型中最基本的組成單位。DOM模型是由一個個節(jié)點組成的,DOM節(jié)點也有其不同的類型。 二、節(jié)點類型 DOM節(jié)點分為5種類型: 文檔節(jié)點(就是整個HTML文檔,也就是

    2024年01月22日
    瀏覽(30)
  • 【前端學(xué)習(xí)筆記2】javaScript基礎(chǔ)

    是一種運(yùn)行在客戶端(服務(wù)器的編程語言) javacript分為行內(nèi)JavaScript,內(nèi)部JavaScript,外部JavaScript 內(nèi)部JavaScript 直接寫在html中body里面 alert(“hello,world”) 我們將script放在html文件的地步附近的原因是瀏覽器會按照代碼在文件中的順序加載html 如果先加載的JavaScript期望修改其

    2024年01月22日
    瀏覽(55)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包