JavaScript(ECMAScript+BOM+DOM)
# 今日內容:
1. JavaScript:
1. ECMAScript:
2. BOM:
3. DOM:
1. 事件
## DOM簡單學習:為了滿足案例要求
* 功能:控制html文件的內容
* 獲取頁面標籤(元素)物件:Element
* document.getElementById("id值"):通過元素的id獲取元素物件
* 操作Element物件:
1. 修改屬性值:
1. 明確獲取的物件是哪一個?
2. 檢視API文件,找其中有哪些屬性可以設定
2. 修改標籤體內容:
* 屬性:innerHTML
1. 獲取元素物件
2. 使用innerHTML屬性修改標籤體內容
## 事件簡單學習
* 功能: 某些元件被執行了某些操作後,觸發某些程式碼的執行。
* 造句: xxx被xxx,我就xxx
* 我方水晶被摧毀後,我就責備對友。
* 敵方水晶被摧毀後,我就誇獎自己。
* 如何繫結事件
1. 直接在html標籤上,指定事件的屬性(操作),屬性值就是js程式碼
1. 事件:onclick--- 單擊事件
2. 通過js獲取元素物件,指定事件屬性,設定一個函式
* 程式碼:
<body>
<img id="light" src="img/off.gif" οnclick="fun();">
<img id="light2" src="img/off.gif">
<script>
function fun(){
alert('我被點了');
alert('我又被點了');
}
function fun2(){
alert('咋老點我?');
}
//1.獲取light2物件
var light2 = document.getElementById("light2");
//2.繫結事件
light2.onclick = fun2;
</script>
</body>
* 案例1:電燈開關
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>電燈開關</title>
</head>
<body>
<img id="light" src="img/off.gif">
<script>
/*
分析:
1.獲取圖片物件
2.繫結單擊事件
3.每次點選切換圖片
* 規則:
* 如果燈是開的 on,切換圖片為 off
* 如果燈是關的 off,切換圖片為 on
* 使用標記flag來完成
*/
//1.獲取圖片物件
var light = document.getElementById("light");
var flag = false;//代表燈是滅的。 off圖片
//2.繫結單擊事件
light.onclick = function(){
if(flag){//判斷如果燈是開的,則滅掉
light.src = "img/off.gif";
flag = false;
}else{
//如果燈是滅的,則開啟
light.src = "img/on.gif";
flag = true;
}
}
</script>
</body>
</html>
# BOM:
1. 概念:Browser Object Model 瀏覽器物件模型
* 將瀏覽器的各個組成部分封裝成物件。
2. 組成:
* Window:視窗物件
* Navigator:瀏覽器物件
* Screen:顯示器螢幕物件
* History:歷史記錄物件
* Location:位址列物件
3. Window:視窗物件
1. 建立
2. 方法
1. 與彈出框有關的方法:
alert() 顯示帶有一段訊息和一個確認按鈕的警告框。
confirm() 顯示帶有一段訊息以及確認按鈕和取消按鈕的對話方塊。
* 如果使用者點選確定按鈕,則方法返回true
* 如果使用者點選取消按鈕,則方法返回false
prompt() 顯示可提示使用者輸入的對話方塊。
* 返回值:獲取使用者輸入的值
2. 與開啟關閉有關的方法:
close() 關閉瀏覽器視窗。
* 誰呼叫我 ,我關誰
open() 開啟一個新的瀏覽器視窗
* 返回新的Window物件
3. 與定時器有關的方式
setTimeout() 在指定的毫秒數後呼叫函式或計算表示式。
* 引數:
1. js程式碼或者方法物件
2. 毫秒值
* 返回值:唯一標識,用於取消定時器
clearTimeout() 取消由 setTimeout() 方法設定的 timeout。
setInterval() 按照指定的週期(以毫秒計)來呼叫函式或計算表示式。
clearInterval() 取消由 setInterval() 設定的 timeout。
3. 屬性:
1. 獲取其他BOM物件:
history
location
Navigator
Screen:
2. 獲取DOM物件
document
4. 特點
* Window物件不需要建立可以直接使用 window使用。 window.方法名();
* window引用可以省略。 方法名();
4. Location:位址列物件
1. 建立(獲取):
1. window.location
2. location
2. 方法:
* reload() 重新載入當前文件。重新整理
3. 屬性
* href 設定或返回完整的 URL。
5. History:歷史記錄物件
1. 建立(獲取):
1. window.history
2. history
2. 方法:
* back() 載入 history 列表中的前一個 URL。
* forward() 載入 history 列表中的下一個 URL。
* go(引數) 載入 history 列表中的某個具體頁面。
* 引數:
* 正數:前進幾個歷史記錄
* 負數:後退幾個歷史記錄
3. 屬性:
* length 返回當前視窗歷史列表中的 URL 數量。
## DOM:
* 概念: Document Object Model 文件物件模型
* 將標記語言文件的各個組成部分,封裝為物件。可以使用這些物件,對標記語言文件進行CRUD的動態操作
* W3C DOM 標準被分為 3 個不同的部分:
* 核心 DOM - 針對任何結構化文件的標準模型
* Document:文件物件
* Element:元素物件
* Attribute:屬性物件
* Text:文字物件
* Comment:註釋物件
* Node:節點物件,其他5個的父物件
* XML DOM - 針對 XML 文件的標準模型
* HTML DOM - 針對 HTML 文件的標準模型
* 核心DOM模型:
* Document:文件物件
1. 建立(獲取):在html dom模型中可以使用window物件來獲取
1. window.document
2. document
2. 方法:
1. 獲取Element物件:
1. getElementById() : 根據id屬性值獲取元素物件。id屬性值一般唯一
2. getElementsByTagName():根據元素名稱獲取元素物件們。返回值是一個陣列
3. getElementsByClassName():根據Class屬性值獲取元素物件們。返回值是一個陣列
4. getElementsByName(): 根據name屬性值獲取元素物件們。返回值是一個陣列
2. 建立其他DOM物件:
createAttribute(name)
createComment()
createElement()
createTextNode()
3. 屬性
* Element:元素物件
1. 獲取/建立:通過document來獲取和建立
2. 方法:
1. removeAttribute():刪除屬性
2. setAttribute():設定屬性
* Node:節點物件,其他5個的父物件
* 特點:所有dom物件都可以被認為是一個節點
* 方法:
* CRUD dom樹:
* appendChild():向節點的子節點列表的結尾新增新的子節點。
* removeChild() :刪除(並返回)當前節點的指定子節點。
* replaceChild():用新節點替換一個子節點。
* 屬性:
* parentNode 返回節點的父節點。
* HTML DOM
1. 標籤體的設定和獲取:innerHTML
2. 使用html元素物件的屬性
3. 控制元素樣式
1. 使用元素的style屬性來設定
如:
//修改樣式方式1
div1.style.border = "1px solid red";
div1.style.width = "200px";
//font-size--> fontSize
div1.style.fontSize = "20px";
2. 提前定義好類選擇器的樣式,通過元素的className屬性來設定其class屬性值。
## 事件監聽機制:
* 概念:某些元件被執行了某些操作後,觸發某些程式碼的執行。
* 事件:某些操作。如: 單擊,雙擊,鍵盤按下了,滑鼠移動了
* 事件源:元件。如: 按鈕 文字輸入框...
* 監聽器:程式碼。
* 註冊監聽:將事件,事件源,監聽器結合在一起。 當事件源上發生了某個事件,則觸發執行某個監聽器程式碼。
* 常見的事件:
1. 點選事件:
1. onclick:單擊事件
2. ondblclick:雙擊事件
2. 焦點事件
1. onblur:失去焦點
2. onfocus:元素獲得焦點。
3. 載入事件:
1. onload:一張頁面或一幅影像完成載入。
4. 滑鼠事件:
1. onmousedown 滑鼠按鈕被按下。
2. onmouseup 滑鼠按鍵被鬆開。
3. onmousemove 滑鼠被移動。
4. onmouseover 滑鼠移到某元素之上。
5. onmouseout 滑鼠從某元素移開。
5. 鍵盤事件:
1. onkeydown 某個鍵盤按鍵被按下。
2. onkeyup 某個鍵盤按鍵被鬆開。
3. onkeypress 某個鍵盤按鍵被按下並鬆開。
6. 選擇和改變
1. onchange 域的內容被改變。
2. onselect 文字被選中。
7. 表單事件:
1. onsubmit 確認按鈕被點選。
2. onreset 重置按鈕被點選。
相關文章
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- javaScript系列[06]-javaScript和thisJavaScript
- 【JavaScript學習】JavaScript物件建立JavaScript物件
- 【轉】eval()函式(javascript) - [javaScript]函式JavaScript
- [Javascript] How javascript read the property?JavaScript
- JavaScript -"this"JavaScript
- javascript ??JavaScript
- This in JavaScriptJavaScript
- “This” is For JavaScriptJavaScript
- javascript thisJavaScript
- JavaScriptJavaScript
- javaScript系列[05]-javaScript和JSONJavaScriptJSON
- 44 道 JavaScript 難題(JavaScript Puzzlers!)JavaScript
- 【轉向JavaScript系列】AST in Modern JavaScriptJavaScriptAST
- javascript,還是javascript的問題JavaScript
- JavaScript 教程之JavaScript常用框架簡介JavaScript框架
- 《深入理解JavaScript》——2.3 JavaScript有用嗎JavaScript
- 【JavaScript】--JavaScript總結一覽無餘JavaScript
- 【HTML、JAVASCRIPT、CSS】3、Javascript基本概念HTMLJavaScriptCSS
- [Javascript] Understanding JavaScript Proxies with Symbol.toPrimitiveJavaScriptSymbolMIT
- JavaScript EventJavaScript
- JavaScript BackdoorJavaScript
- JavaScript normalize()JavaScriptORM
- JavaScript setDate()JavaScript
- JavaScript setMinutes()JavaScript
- JavaScript getDate()JavaScript
- JavaScript setHours()JavaScript
- JavaScript setUTCMinutes()JavaScript
- JavaScript setUTCHours()JavaScript
- JavaScript setUTCFullYear()JavaScript
- JavaScript setUTCMonth()JavaScript
- JavaScript setUTCDate()JavaScript
- JavaScript getUTCMinutes()JavaScript
- JavaScript setMonth()JavaScript
- JavaScript getMonth()JavaScript
- JavaScript getMinutes()JavaScript
- JavaScript getYear()JavaScript
- JavaScript getHours()JavaScript