JavaScript高級筆記

来源:https://www.cnblogs.com/freud-shen/archive/2019/09/20/11559986.html
-Advertisement-
Play Games

# 今日內容: 1. JavaScript: 1. ECMAScript: 2. BOM: 3. DOM: 1. 事件 ## DOM簡單學習:為了滿足案例要求 * 功能:控制html文檔的內容 * 獲取頁面標簽(元素)對象:Element * document.getElementById("id值 ...


# 今日內容:
    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"  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
更多相關文章
  • [toc] ansible變數 定義變數的方式 命令行 playbook 主機清單 如何定義變數 1.在playbook中定義變數 2.使用vars_files定義變數 3.使用ansible內置變數 4.使用主機清單定義變數 調用變數 5.官方推薦方式 6.命令行定義變數 ansible變數優先順序 ...
  • PostgreSQL觸發器,日誌審計小神器 最近遇到的項目問題,審計日誌記錄不夠詳細,比如某用戶編輯了某台設備,只記錄了用戶操作的設備名、操作時間、登錄用戶和登錄IP,至於設備其他屬性編輯前和編輯後的信息就沒有更詳細的對比了,審計粒度不夠細,顯然是不能讓客戶滿意的,秉承客戶滿意優先原則,只好技術加持 ...
  • 這三個不同的數據模型之間既相互獨立,又存在著關聯。從現實世界到概念 模型的轉換是由資料庫設計人員完成的;從概念模型到邏輯模型的轉換可以 由資料庫設計人員完成,也可以用資料庫設計工具協助設計人員完成;從邏 輯模型到物理模型的轉換主要是由資料庫管理系統完成的。 ...
  • 版權聲明:本文為xing_star原創文章,轉載請註明出處! 本文同步自http://javaexception.com/archives/218 kotlin之變數的可空與非空 上面一篇文章,介紹了kotlin的變數與常量,以及修飾為常量或者是變數的評估標準。本篇文章主要想說的是一個變數的可空與非 ...
  • 本文鏈接: "Android MediaPlayer 基礎簡介" 簡單介紹MediaPlayer的基本概念,狀態,常用的方法與監聽器。 什麼是MediaPlayer MediaPlayer類可以用來播放音視頻文件,或者是音頻流。開發者可以用它來播放本地音頻,或者是網路線上音頻。 MediaPlaye ...
  • 本文基於webpack4.X,使用的包管理工具是yarn 概念相關就不搬運了,直接開始 首先項目初始化 在項目中安裝webpack和webpack cli (webpack4.X需要) 緊接著在項目中創建三個文件 ,`dist/index.html webpack.config.js`, webpa ...
  • 一、內邊距屬性 1.定義:邊框和內容之間的距離就是內邊距 2.分開寫 3.連寫: 4.註意點: (1)給標簽設置內邊距之後,標簽占有的寬度和高度會發生變化 (2)內邊距也會有背景顏色 二、外邊距屬性 1.定義:標簽與標簽之間的距離就是外邊距 2.分開寫: 3.一起寫 4.例子 5.註意點:外邊距的那 ...
  • 在熟悉jQuery過程中,練習超鏈接提示顯示,發現書本上有個問題,經過查詢資料,修改如下: 效果如下圖: IE edge中的效果: ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...