<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 前端學習之JavaScript DOM以及DOM操作的基礎知識

    2020-4-18    前端達人

    在了解了javascript的語言基礎和特性后

    javascript真正大放光彩的地方來了——這就是javascript DOM


    Javascript DOM
    DOM(Document Object Model),文檔對象模型。

    是W3C組織推薦的處理可擴展標記語言(HTML或者XML)的標準編程接口;W3C已經定義了一系列DOM接口,通過這些DOM接口可以改變網頁的內容、結構和樣式。

    簡單的說就是一套操作文檔內容的方法。

    需要注意的是,我們需要把DOM當作一個整體,不能分割看待,即DOM(文檔對象模型)是一套操作文檔內容的方法。


    • 文檔:一個頁面就是一個文檔,DOM中使用document表示
    • 元素:頁面中的所有標簽都是元素,DOM中使用element表示
    • 節點:網頁中的所有內容都是節點(標簽、屬性、文本、注釋等),DOM中使用node表示

    DOM把以上內容看作都是對象

    <!DOCTYPE html>
    <html>
    <head>
        <title>Shopping list</title>
        <meta charset="utf-8">
    </head>
    <body>
    <h1>What to buy</h1>
    <p id="buy" title="a gentle reminder">Don't forget to buy this stuff</p>
    <ul id="purchases">
        <li>A tin od beans</li>
        <li>Cheese</li>
        <li>Milk</li>
    </ul>
    </body>
    </html>
    



    用樹表示這個網頁的結構:

    aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2ktYmV0YS8xODQ2ODAyLzIwMTkxMi8xODQ2ODAyLTIwMTkxMjIzMTcxMDI5MTY1LTExNTE0OTgxMDMucG5n.jpg

    1、獲取DOM四種基本方法
    1、getElementById()

    2、getElementsByTagname()

    3、getAttribute()

    4、setAttribute()

     

    常用的兩種解析:

    1. getElementById():

    參數:元素的ID值。 (元素節點簡稱元素) 
    返回值:一個有指定ID的元素對象(元素是對象) 
    注:這個方法是與document對象相關聯,只能由document對象調用。 
    用法:document.getElementById(Id) 

    例:

    <!DOCTYPE html>
    <html lang="zh">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <div id="time">2020-04-16</div>
        <script>
            // 1. 因為我們文檔頁面從上往下加載,所以先得有標簽 所以我們script寫到標簽的下面
            // 2. get 獲得 element 元素 by 通過 駝峰命名法 
            // 3. 參數 id是大小寫敏感的字符串
            // 4. 返回的是一個元素對象
            var timer = document.getElementById('time');
            console.log(timer);
            console.log(typeof timer);
            // 5. console.dir 打印我們返回的元素對象 更好的查看里面的屬性和方法
            console.dir(timer);
        </script>
    </body>
    
    </html>
    




    看一下控制臺打印的是什么

    20200416221227181.png


    可以看到 console.log(timer)打印出來的是整個div標簽

    timer類型是個對象

     

    2. getElementsByTagName():

    參數:元素名
    返回值:一個對象數組。這個數組里每個元素都是對象,每個對象分別對應著文檔里給定標簽的一個元素。
    注:這個方法可和一般元素關聯。這個方法允許我們把通配符當作它的參數,返回在某份html文檔里總共有多少個元素節點。
    用法:element.getElementsByTagName(TagName) 

    例:

    var items=document.getElementsByTagName("li");
    items.length;//3
    document.getElementsByTagName(“*”);//12
     

     

    2、事件基礎
    3.1 事件概述
    JavaScript使我們有能力創建動態頁面,而事件是可以被JavaScript偵測到的行為。

    簡單理解:觸發——>響應機制

    網頁中每個元素都可以產生某些可以觸發JavaScript的事件,例如,我們可以在用戶點擊某按鈕產生一個事件,然后去執行某些操作

    3.2 事件三要素
    事件源 、事件類型、事件處理程序,我們也稱為事件三要素

    (1) 事件源 事件被觸發的對象   誰  
    (2) 事件類型  如何觸發 什么事件 比如鼠標點擊(onclick) 還是鼠標經過 還是鍵盤按下
    (3) 事件處理程序  通過一個函數賦值的方式 完成

    代碼實例

    <!DOCTYPE html>
    <html lang="zh">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <button id="btn">唐伯虎</button>
        <script>
            // 點擊一個按鈕,彈出對話框
            // 1. 事件是有三部分組成  事件源  事件類型  事件處理程序   我們也稱為事件三要素
            //(1) 事件源 事件被觸發的對象   誰  按鈕
            var btn = document.getElementById('btn');
            //(2) 事件類型  如何觸發 什么事件 比如鼠標點擊(onclick) 還是鼠標經過 還是鍵盤按下
            //(3) 事件處理程序  通過一個函數賦值的方式 完成
            btn.onclick = function() {
                alert('點秋香');
            }
        </script>
    </body>
    
    </html>
    


    運行結果

    20200416223238828.png

    3.3 執行事件的步驟

    1、獲取事件源

    2、注冊事件(綁定事件)

    3、添加事件處理程序(采取函數賦值形式)

     

    代碼實戰

    
            


    <!DOCTYPE html>
    <html lang="zh">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <div>123</div>
        <script>
            // 執行事件步驟
            // 點擊div 控制臺輸出 我被選中了
            // 1. 獲取事件源
            var div = document.querySelector('div');
            // 2.綁定事件 注冊事件
            // div.onclick 
            // 3.添加事件處理程序 
            div.onclick = function() {
                console.log('我被選中了');
    
            }
        </script>
    </body>
    
    </html>
    



    常用的DOM事件
    onclick事件---當用戶點擊時執行
    onload事件---當用戶進入時執行
    onunload事件---用用戶離開時執行
    onmouseover事件---當用戶鼠標指針移入時執行
    onmouseout事件---當用戶鼠標指針移出時執行
    onmousedown事件---當用戶鼠標摁下時執行
    onmouseup事件---當用戶鼠標松開時執行
     
    ————————————————
    版權聲明:本文為CSDN博主「那是我吶」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
    原文鏈接:https://blog.csdn.net/weixin_42402867/article/details/105567787

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 91精品国产福利在线观看 | 国产小视频国产精品| 乱精品一区字幕二区| 亚洲精品无码鲁网中文电影| 在线观看国产精品日韩av| 亚洲国产第一站精品蜜芽| AAA级久久久精品无码区| 国产高清在线精品一区二区| 精品无码一级毛片免费视频观看| 牛牛在线精品观看免费正| 日本精品夜色视频一区二区| 无码精品久久久天天影视| 国产精品国产三级国产AV主播 | 99热亚洲色精品国产88| 国产cosplay精品视频| 久久久国产精品网站| 精品久久久久久国产免费了| 免费精品一区二区三区第35| 精品一区二区三区在线成人| 国产精品夜色一区二区三区| 日韩一区精品视频一区二区| 四虎精品成人免费视频| 久久久久无码国产精品不卡| 精品亚洲麻豆1区2区3区| 午夜福利麻豆国产精品| 精品国产热久久久福利| 乱色精品无码一区二区国产盗| 天天爽夜夜爽8888视频精品| 久久久99精品成人片中文字幕| 国产精品无打码在线播放| 日韩福利视频精品专区| 国产小呦泬泬99精品| 国产精品成人久久久久三级午夜电影| 久久成人精品视频| 在线精品国产一区二区三区| 国精品午夜福利视频不卡| 国产精品 91 第一页| 97精品国产自在现线免费观看| 久久精品国产91久久麻豆自制 | 2020国产精品| 国产精品嫩草影院一二三区入口|