JavaScript高級

来源:https://www.cnblogs.com/loveyoul9/archive/2019/08/07/11313300.html
-Advertisement-
Play Games

## DOM簡單學習:為了滿足案例要求 * 功能:控制html文檔的內容 * 獲取頁面標簽(元素)對象:Element * document.getElementById("id值"):通過元素的id獲取元素對象 * 操作Element對象: 1. 修改屬性值: 1. 明確獲取的對象是哪一個? 2.... ...


## 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"  onclick="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	重置按鈕被點擊。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • HTML代碼 <select id="s1"> <option value="0">~請選擇省份~</option> <option value="1">湖北省</option> <option value="2">江西省</option> </select> <select name="" id= ...
  • Vue+Typescript中在Vue上掛載axios使用時報錯 在 項目開發過程中,為了方便在各個組件中調用 ,我們通常會在入口文件將axios掛載到vue原型身上,如下: 這樣的話,我們在各個組件中進行請求時,就可以直接使用 ,但是在ts中使用 進行請求時,會進行報錯,如下所示: 從圖中我們可以 ...
  • 一、小程式概述 2017 年 1 月 9 日小程式正式上線,騰訊開放了個人開發者開發小程式,小程式從此就開始火爆,這一年,小程式狂攬 4 億用戶、1.7 億的日常活躍,上線 58 萬個。這是一個巨大的機會,對於企業宣傳,拉新用戶存在變革性的影響。 小程式的本質是:輕應用,就是不用安裝就能使用的手機A ...
  • 最近在研究MUI框架時,看到這樣的代碼: init,這個外面還有一層: 有些明瞭了,這就像java中對象的裡面定義了一個init方法,這裡init方法也是初始化方法,這裡是對整個頁面進行初始化。調用類似java:_App.init()即可. 關於細節說法:這是一種json寫法,把所有的functio ...
  • 下載NEditor 放在 vue 項目下麵 public 文件中。 安裝 vue-neditor-wrap 執行命令 npm install vue-neditor-wrap 代碼使用 <VueNeditorWrap ref="VueNeditorWrap" v-model="content" :c ...
  • 摘要: 理解函數式編程。 作者:前端小智 原文: "JS中函數式編程基本原理簡介" "Fundebug" 經授權轉載,版權歸原作者所有。 在長時間學習和使用面向對象編程之後,咱們退一步來考慮系統複雜性。 在做了一些研究之後,我發現了函數式編程的概念,比如不變性和純函數。這些概念使你能夠構建無副作用的 ...
  • jTopo 幫助說明網站 http://www.jtopo.com/index.html 使用例子: http://www.jtopo.com/demo/helloworld.html 不建議直接安裝 github 上的代碼,因為代碼版本不是最新,有部分功能未實現。 下載最新的js類庫文件放到 vu ...
  • vis.js 網站 https://visjs.org/ vs code 下安裝命令 npm install vis-network 在vue 下引入 vis-network組件 const vis = require("vis-network/dist/vis-network.min.js"); ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...