1.DOM的概念
2.為元素注冊事件
3.案例:點擊按鈕顯示圖片及設置寬高
4.案例:點擊按鈕設置p標簽的文本內容
5.案例:點擊按鈕修改超鏈接的地址及熱點文字
6.案例: 點擊按鈕設置多個p標簽內容
7.案例:點擊按鈕修改圖片的alt和title屬性
8.案例: 點擊按鈕修改多個文本框的值
9.案例:點擊圖片修改自身的寬高
10.案例:按鈕的排他功能
11.案例:點小圖邊大圖
12.案例:點擊按鈕選擇性別和興趣
13.案例:下拉選擇框
14.案例:文本域
15.案例:點擊按鈕設置div的樣式
16.案例:點擊按鈕,顯示或隱藏div
17.案例:通過類樣式class設置div樣式
18.案例:通過類樣式class設置div顯示或隱藏
19.點擊div改變其背景色(隨機)
1.DOM的概念 <--返回目錄
* JavaScript分三部分
- ECMAScript標准:JS的基本語法
- DOM:Document object Model 文檔對象模型--操作頁面的元素
- BOM:Browser Object Model 瀏覽器對象模型--操作的是瀏覽器
* DOM文檔對象模型--操作頁面元素
- 文檔document:把一個html文件看成一個文檔,由於萬物皆對象,所以把這個文檔看成是一個對象
- 元素element:html頁面的每個標簽,都是一個元素,每個元素都可以看成一個對象
- 節點node:頁面中所有的內容都是節點,標簽,屬性,文本
- 屬性
2、為元素注冊事件 <--返回目錄
* 事件:就是一件事,有觸發、響應、事件源
按鈕被點擊,彈出對話框
按鈕-->事件源
點擊-->事件名字
被點了-->觸發了
彈框了-->響應
* 點擊按鈕,彈出對話框,代碼1:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="彈框" onclick="alert('哈哈哈~')"/> </body> </html>
* 點擊按鈕,彈出對話框,代碼2:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="彈框" id="btn" onclick="fun()"/> <script type="text/javascript"> function fun(){ alert("嘎嘎嘎~"); } </script> </body> </html>
* 點擊按鈕,彈出對話框,代碼3:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="彈框" id="btn"/> <script type="text/javascript"> document.getElementById("btn").onclick = function(){ alert("呵呵呵~"); }; </script> </body> </html>
3、案例:點擊按鈕顯示圖片及設置寬高 <--返回目錄
點擊按鈕顯示圖片, 點擊按鈕的時候設置img標簽的src屬性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="按鈕" id="btn"/> <img src="" id="imgId"/> <script type="text/javascript"> document.getElementById("btn").onclick=function(){ var ele = document.getElementById("imgId"); ele.src="a.jpg"; ele.width="300";//注意,img標簽的width的值300沒有單位px ele.height="280"; }; </script> </body> </html>
4、案例:點擊按鈕設置p標簽的文本內容 <--返回目錄
凡是成對的標簽,中間的文本內容,設置的時候,都使用innerText屬性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="按鈕" id="btn"/> <p id="pId"></p> <script type="text/javascript"> document.getElementById("btn").onclick=function(){ var ele = document.getElementById("pId"); ele.innerText="文本"; }; </script> </body> </html>
5、案例:點擊按鈕修改超鏈接的地址及熱點文字 <--返回目錄
熱點文字:即<a>熱點文字</>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="按鈕" id="btn"/> <a href="" id="aId"></a> <script type="text/javascript"> document.getElementById("btn").onclick=function(){ var ele = document.getElementById("aId"); ele.href="http://www.baidu.com"; //注意http不可以省略 ele.innerText="百度"; }; </script> </body> </html>
6、案例:點擊按鈕設置多個p標簽內容 <--返回目錄
如何獲取某個div里面的所以p標簽
var eles = document.getElementById("div1Id").getElementsByTagName("p");
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="按鈕" id="btn"/> <div id="div1Id"> <p>aaaa</p> <p>bbbb</p> <p>cccc</p> </div> <div id="div2Id"> <p>aaaa</p> <p>bbbb</p> <p>cccc</p> </div> <script type="text/javascript"> document.getElementById("btn").onclick=function(){ var eles = document.getElementById("div1Id").getElementsByTagName("p"); for(var i=0;i<eles.length;i++){ eles[i].innerText="p標簽文本"; } }; </script> </body> </html>
7、案例:點擊按鈕修改圖片的alt和title屬性 <--返回目錄
title:鼠標懸停在圖片上時顯示的信息
alt:圖片掛了時顯示的信息
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="按鈕" id="btn"/> <img src="a.jpg" width="300" height="280" /> <script type="text/javascript"> document.getElementById("btn").onclick=function(){ var ele = document.getElementsByTagName("img")[0]; ele.alt="圖片掛了時的信息"; ele.title="標題"; }; </script> </body> </html>
8、案例:點擊按鈕修改多個文本框的值 <--返回目錄
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="按鈕" id="btn"/><br/> <input type="text"/><br/> <input type="text"/><br/> <input type="text"/> <script type="text/javascript"> document.getElementById("btn").onclick=function(){ var eles = document.getElementsByTagName("input"); for(var i=0;i<eles.length;i++){ if(eles[i].type=="text"){ eles[i].value="文本框輸入的值"; }else if(eles[i].type=="button"){ eles[i].value="我是個按鈕"; } } }; </script> </body> </html>
9、案例:點擊圖片修改自身的寬高 <--返回目錄
對綁定事件的元素自身進行修改,可以使用this
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <img src="a.jpg" width="500px"/> <script type="text/javascript"> var ele = document.getElementsByTagName("img")[0]; ele.onclick=function(){ this.width="300";//對綁定事件的元素自身進行修改,可以使用this }; </script> </body> </html>
10、案例:按鈕的排他功能 <--返回目錄
需求:3個按鈕,按鈕的默認value值是沒被點,點擊按鈕,該按鈕value值為被點了;
點擊另外一個按鈕,該按鈕value值為被點了,其他的value值變成默認值。
做兩件事:第一、將所有按鈕value值設置為"沒被點";第二、將當前點擊的按鈕的value值設置為"被點了"
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" value="沒被點" style="background-color: #ddd"/> <input type="button" value="沒被點" style="background-color: #ddd"/> <input type="button" value="沒被點" style="background-color: #ddd"/> <script type="text/javascript"> var eles = document.getElementsByTagName("input"); for(var i=0;i<eles.length;i++){ eles[i].onclick=function(){ //將所有按鈕value值設置為"沒被點" for(var j=0;j<eles.length;j++){ eles[j].value="沒被點"; eles[j].style="background-color:#ddd"; } this.value="被點了";//注意:這里this不能用eles[i],因為為所有按鈕注冊完事件后i=3了 this.style="background-color:red"; }; } </script> </body> </html>
11、案例:點小圖變大圖 <--返回目錄
<a href="a.jpg"><img src="a-small.jpg"></a>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <a href="a.jpg" id="aId"><img src="a-small.jpg" id="imgId"></a> <script type="text/javascript"> //點擊圖片標簽,設置圖片標簽的src路徑為超鏈接中大圖的路徑 document.getElementById("imgId").onclick=function(){ this.src=document.getElementById("aId").href; //return false;//頁面url不變 }; </script> </body> </html>
12、案例:點擊按鈕選擇性別和興趣 <--返回目錄
document.getElementById().checked=true; //被選中
true可以用"checked"替換,但是瀏覽器也會把"checked"解析成true
13、案例:下拉選擇框 <--返回目錄
document.getElementById().selected=true; //被選中
14、案例:文本域 <--返回目錄
* disabled="disabled"
* readonly="readonly"
* document.getElementById().value="哈哈";//推薦使用這種方法,改變文本域內容
* document.getElementById().innerText="呵呵";//也可以改變文本域內容
15、案例:點擊按鈕設置div的樣式 <--返回目錄
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" id="btn" value="按鈕"/> <div id="divId"></div> <script type="text/javascript"> document.getElementById("btn").onclick=function(){ document.getElementById("divId").style.width="200px"; document.getElementById("divId").style.height="200px"; //經驗:css中background-color在js中寫成backgroundColor document.getElementById("divId").style.backgroundColor="hotpink"; //document.getElementById("divId").style="width:200px;height:200px;background-color:green"; }; </script> </body> </html>
16、案例:點擊按鈕,顯示或隱藏div <--返回目錄
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> </head> <body> <input type="button" id="btn" value="顯示" /> <div id="divId"></div> <script type="text/javascript"> var ele = document.getElementById("btn"); ele.onclick=function(){ var divEle = document.getElementById("divId"); if(this.value=="顯示"){ divEle.style="width:200px;height:200px;background-color:green"; //divEle.style.display=true; divEle.style.display="block"; this.value="隱藏"; }else if(this.value=="隱藏"){ divEle.style.display="none"; this.value="顯示"; } }; </script> </body> </html>
17、案例:通過類樣式class設置div樣式 <--返回目錄
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> <style type="text/css"> .cls1{ width:200px; height: 200px; background-color: yellow; } .cls2{ width:300px; height: 300px; background-color: hotpink; border:2px solid blue; } </style> </head> <body> <input type="button" id="btn" value="按鈕" /> <div id="divId" class="cls1"></div> <script type="text/javascript"> var ele = document.getElementById("btn"); ele.onclick=function(){ document.getElementById("divId").className="cls2"; }; </script> </body> </html>
18、案例:通過類樣式class設置div顯示或隱藏 <--返回目錄
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>標題</title> <style type="text/css"> div{ width:200px; height: 200px; background-color: yellow; } .cls{ display: none; } </style> </head> <body> <input type="button" id="btn" value="隱藏" /> <div id="divId" ></div> <script type="text/javascript"> var ele = document.getElementById("btn"); var divEle = document.getElementById("divId"); ele.onclick=function(){ if(divEle.className != "cls"){//div為顯示狀態 this.value="顯示"; divEle.className="cls"; }else{//div為隱藏狀態 this.value="隱藏"; divEle.className=""; } }; </script> </body> </html>
19.點擊div改變其背景色(隨機) <--返回目錄
<!DOCTYPE html> <html> <head> <title>標題</title> <style type="text/css"> #box { background-color: #342; width: 200px; height: 200px; } </style> </head> <body> <div id="box"></div> </body> <script type="text/javascript"> function getRandomStr(length) { if (!length) length = 1 const strArray = ['0', '1', '2', '3', '4', '5', '6' ,'7' ,'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'] let str = '' for (let i = 0; i < length; i++) { str += strArray[parseInt(Math.random() * 16)] } return str } function randomColor(ele) { const color = '#' + getRandomStr(6) console.log(`color=${color}`) ele.style.backgroundColor = color } const ele = document.getElementById('box') ele.onclick = function() { randomColor(this) } </script> </html>
---