js(Dom+Bom)第一天(2)

webAPI

00-復習

  1. 內置對象中的方法

01-JavaScript組成

  1. 知識點-ECMASCRIPT

    • 重點回顧
      • 存儲容器
        • 變量
        • 數組
        • 對象
      • 邏輯語法
        • 分支語句
        • 循環語句
        • switch語句
  2. 知識點-BOM

    • 概念

      Browser Object Model (瀏覽器器對象模型)  操作瀏覽器將瀏覽器看做是一個對象.
      
    • 作用

      通過js操作瀏覽器中相關操作
      
  3. 知識點-DOM

    • 什么是DOM?

      Document Object Model(文檔對象模型)
      
    • 詳解DOM

      • 什么是文檔

        HTML文件就是一個文檔
        

在這里插入圖片描述

 - 什么是文檔對象```js將整個網頁封裝成一個對象,這個對象叫文檔對象(document)```- 為什么要學DOM?```js在網頁中常常涉及到需要用戶操作網頁,比如點擊, 鼠標進入, 鼠標離開等,ECMASCRIPT是無法實現,只能通過DOM操作實現目的: 通過js操作網頁.```- **JS操作網頁的原理**- DOM樹操作```js瀏覽器在加載html文件時,會把文檔、文檔中的標簽、屬性、文本、注釋轉換成對象,然后按照標簽的關系(父子、兄弟、祖孫)以樹狀結構存儲到內存中。```

在這里插入圖片描述

在這里插入圖片描述

   - 元素```js元素特指: HTML標簽```- 節點```jsHTML文檔中的所有元素的總稱稱為節點,每一個標簽,每一個文本,每一個符號(回車,空格)都稱為一個節點```
  1. 知識點-什么是API

    • API(Application Programming Interface)應用程序編程接口(暴露出來的工具)。

      api: 通俗理解就是一個方法或屬性
      
    • 瀏覽器平臺對外公開的提供操作瀏覽器和網頁的接口(BOM、DOM)

      webAPI: 網頁中提供的一些方法,用來操作網頁的.webAPI階段重點: 記住各種方法用來操作網頁 
      

02-DOM學習路徑

  1. 找對象(獲取元素)
  2. 設置元素屬性
  3. 設置元素樣式
  4. 動態創建元素和刪除元素
  5. 事件的觸發響應: 事件源,事件,事件驅動

03-獲取頁面元素[重點]

  1. 通過ID獲取元素

    • 語法

      document.getElementById('元素id');
      
    • 總結

      1. document.getElementById得到就是一個html標簽對象
      2. document.getElementById得到的結果只有一個對象
      3. 不推薦標簽的id值重復
  2. 通過標簽名獲取元素

    • 語法

      document.getElementsByTagName('html標簽名字');注意:
      標簽的名字, 不是html標簽
      
    • 總結

      1. 返回的結果是一個偽數組對象
      2. 這個數組對象中保存的就是每一個具體的html標簽對象
      3. 如果要獲取每一個html標簽對象,可以遍歷這個數組得到
  3. 通過選擇器獲取單個元素

    • 語法

      document.querySelector('css選擇器');  備注: 所有的css選擇器都可以用
      
    • 總結

      1. document.querySelector()方法返回的結果只有一個對象
      2. 返回的這個對象還是滿足條件的第一個
  4. 通過選擇器獲取多個元素

    • 語法

      document.querySelectorAll('CSS選擇器')備注: 所有的css選擇器都可以用
      
    • 總結

      1. document.querySelectorAll() 得到的結果偽數組對象
      2. document.querySelectorAll() 返回值數組中存放的就是每一個具體的html標簽對象
      3. 可以通過循環遍歷的方式獲取具體的每一個html標簽對象
  5. 課堂練習

    1. 在如下代碼結構中將第一個列表中所有的li標簽輸出到控制臺中
    2. 在如下代碼結構中將第二個列表中第3個li標簽輸出到控制臺中
    

在這里插入圖片描述

04-事件

  1. 什么是事件?

    事件 : 其實就是用戶在網頁中的一個具體的動作為什么要學事件: 在網頁中有些效果是需要用戶執行完動作(事件)后才有對應的效果的
    
  2. 事件組成的三要素

    • 事件源

      事件源: 源頭,給誰加的事件.      ----->  具體的DOM對象(html標簽對象)
      
    • 事件類型

      事件類型:  用戶動作是什么
      
    • 處理程序

      處理程序:  用戶執行完動作后要干什么?    -----> 處理程序是一個函數
      
  3. 事件語法

    事件源.事件類型 = function() {//處理程序
    }
    
  4. 事件類型

    • onclick —> 用戶的點擊事件
  5. this關鍵字介紹

    • 在普通函數中的this

      this 指向 window
      
    • 在構造函數中的this

      this 指向的是 創建的對象
      
    • 事件中的this

      在事件中的 this 指向誰?  指向事件源
      
  6. 事件處理程序什么時候執行

    當事件被用戶觸發后,處理程序中的代碼才會執行
    
  7. 課堂練習

    1. 給id名為'one'的標簽注冊一個點擊事件, 點擊后彈出 '你好'
    2. 給頁面中的每一個li標簽注冊點擊事件, 單擊后彈出當前li的索引值(第幾個就彈出幾)<ul><li>我是第一個li</li> <li>我是第二個li</li> <li>我是第三個li</li> </ul>
    

05-操作圖片標簽中的屬性

  1. src屬性
  2. alt屬性
  3. 課堂案例-切換圖片

06-操作a標簽的屬性

  1. href屬性

    獲取a標簽中的網址信息:
    DOM.href
    
  2. 阻止a標簽跳轉方式

    在 a 標簽的點擊事件中 設置  return  false;a.onclick = function() {//阻止a 標簽跳轉  return false;
    }
    

07-標簽設置/獲取文字

  1. innerText

    • innerText獲取內容

      獲取DOM對象(標簽對象)中的文字
      DOM.innerText
      
    • innerText設置內容

      給標簽賦值:DOM.innerText =;
      
  2. innerHTML

    • innerHTML獲取內容

      獲取DOM對象(標簽對象)中的文字
      語法: DOM.innerHTML
      
    • innerHTML設置內容

      給標簽賦值:DOM.innerHTML  =;
      
  3. innerText 和 innerHTML的區別

    • innerHTML 在獲取標簽中文字信息的時候,包括了回車符,html標簽等內容
    • innerText在獲取標簽中文字信息的時候,只獲取文字,不包括其他內容
    • innerHTML給標簽賦值的時候,可以將標簽渲染成對應的HTML標簽
    • innerText給標簽賦值的時候,不能將標簽渲染成HTMl標簽的
  4. 課堂練習-點擊標簽切換文字

08-操作標簽樣式

  1. 通過className方式操作
    • 通過className設置一個類名
    • 通過className設置多個類名
    • 通過className移除類名
  2. 課堂案例-設置標簽動畫樣式

HTML的區別**

  • innerHTML 在獲取標簽中文字信息的時候,包括了回車符,html標簽等內容
  • innerText在獲取標簽中文字信息的時候,只獲取文字,不包括其他內容
  • innerHTML給標簽賦值的時候,可以將標簽渲染成對應的HTML標簽
  • innerText給標簽賦值的時候,不能將標簽渲染成HTMl標簽的
  1. 課堂練習-點擊標簽切換文字

08-操作標簽樣式

  1. 通過className方式操作
    • 通過className設置一個類名
    • 通過className設置多個類名
    • 通過className移除類名
  2. 課堂案例-設置標簽動畫樣式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248256.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248256.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248256.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql 主主復制的配置流程

1、先關閉B&#xff0c;把A的數據導出來&#xff0c;mysqldump -hlocalhost -uroot -p123456 --database ibprpu >ibprpu.sql2、關閉A&#xff0c;啟動B&#xff0c;進入mysql建立一個新的數據庫 create database ibprpu3、導入數據庫 mysql -hlocalhost -uroot -p123456 &l…

華為架構師8年經驗談:從單體架構到微服務的服務化演進之路

本次分享的技術大綱如下&#xff1a; 傳統應用開發面臨的挑戰服務化實踐服務化不是銀彈服務化架構的演進方向一 、傳統應用開發面臨的挑戰 挑戰1-- 研發成本高 主要體現在如下幾個方面&#xff1a; 代碼重復率高在實際項目分工時&#xff0c;開發都是各自負責幾個功能&#xff…

輪播圖制作(1)

輪播圖制作 <body><div><img src"img/1.jpg" class"imgs" alt""><a href"#" class"left"><</a> //此處的箭頭也可以用圖標做出來<a href"#" class"right">>…

StringUtils工具類的常用方法

StringUtils 方法的操作對象是 java.lang.String 類型的對象&#xff0c;是 JDK 提供的 String 類型操作方法的補充&#xff0c;并且是 null 安全的(即如果輸入參數 String 為 null 則不會拋出 NullPointerException &#xff0c;而是做了相應處理&#xff0c;例如&#xff0c…

struts2+extjs文件上傳完整實現(攻克了上傳中的各種問題)

版權聲明&#xff1a;本文為博主原創文章。未經博主同意不得轉載。 https://blog.csdn.net/shanhuhau/article/details/28617999 首先須要引入上傳控件 <script type"text/javascript" src"<%basePath%>/js/ext/examples/ux/fileuploadfield/FileUploa…

放大鏡制作(1)

放大鏡制作 <div class"box" id"box"><!--左側的盒子--><div class"small"><!--圖片--><img src"images/big.jpg" width"350" class"aaa" alt""/><!--黃色小盒子--&…

.NET Framework 2.0 組件和非托管代碼與交互操作詳解(轉)

.NET Framework 將促進與 COM 組件、COM 服務、外部類型庫和許多操作系統服務的交互操作。在托管和非托管對象模型之間&#xff0c;數據類型、方法簽名和錯誤處理機制都存在差異。為了簡化 .NET Framework 組件和非托管代碼之間的互用并便于進行移植&#xff0c;公共語言運行時…

git 刪除遠程分支和本地分支

刪除遠程分支和本地分支 https://www.cnblogs.com/luosongchao/p/3408365.html 將遠程git倉庫里的指定分支拉取到本地&#xff08;本地不存在的分支&#xff09; https://www.cnblogs.com/hamsterPP/p/6810831.html 轉載于:https://www.cnblogs.com/mafeng/p/10619419.html

從零開始實現ASP.NET Core MVC的插件式開發(四) - 插件安裝

標題&#xff1a;從零開始實現ASP.NET Core MVC的插件式開發(四) - 插件安裝 作者&#xff1a;Lamond Lu 地址&#xff1a;https://www.cnblogs.com/lwqlun/p/11343141.html 源代碼&#xff1a;https://github.com/lamondlu/Mystique 前情回顧 從零開始實現ASP.NET Core MVC的插…

立體導航翻轉案例

<div class"box"><!-- 立方體 --><ul><li><img src"img1/1.jpg" alt""></li><li><img src"img1/2.jpg" alt""></li><li><img src"img1/3.jpg" a…

Uncontrolled memory mapping in camera driver (CVE-2013-2595)

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主同意不得轉載。https://blog.csdn.net/hu3167343/article/details/34434235 /* 本文章由 莫灰灰 編寫&#xff0c;轉載請注明出處。 作者&#xff1a;莫灰灰 郵箱&#xff1a; minzhenfei163.com */ 1漏洞描寫…

表格隔行變色

<body><table border"0" align"center" cellspacing"1" cellpadding"0"><caption>恭喜發財</caption><thead><tr><th>代碼</th><th>名稱</th><th>最新公布凈值<…

啟動Cognos時報0106錯誤

1. 問題描述 啟動Cognos失敗&#xff0c;報錯代碼為0106。 2. 問題分析 是jdk版本不兼容。 3. 解決方案 方案一&#xff1a;更換jdk1.6&#xff0c;可以使用免安裝版&#xff0c;不需要卸載原有的jdk將java_home的路徑替換成jdk1.6的路徑。 方案二&#xff1a;使用Cognos自帶jd…

項目管理的測試版發布

最近有時間將以前沒有寫完的項目管理程序進一步完善&#xff0c;加入了項目任務之間的關連。功能&#xff1a;1、任務的關連Start to finishStart to startFinish to startFinish to finish2、任務關連表環路檢測3、采用MVC模式進行開發4、自動導出XML5、雙擊連接線可以設置、刪…

劍指offer.機器人的運動范圍

地上有一個 m 行和 n 列的方格&#xff0c;橫縱坐標范圍分別是 0~m?1 和 0~~n?1。一個機器人從坐標0,0的格子開始移動&#xff0c;每一次只能向左&#xff0c;右&#xff0c;上&#xff0c;下四個方向移動一格。但是不能進入行坐標和列坐標的數位之和大于 kk 的格子。請問…

Tab欄切換布局分析

<body><div class"tab"><div class"tab_list"><ul><li class"current">商品介紹</li><li>規格與包裝</li><li>售后包裝</li><li>商品評價(50000)</li><li>手機社…

CLR基礎,CLR運行過程,使用dos命令創建、編譯、運行C#文件,查看IL代碼

CLR是Common Language Runtime的縮寫&#xff0c;是.NET程序集或可執行程序運行的一個虛擬環境。CLR用于管理托管代碼&#xff0c;但是它本身是由非托管代碼編寫的&#xff0c;并不是一個包含了托管代碼的程序集&#xff0c;所以不能使用IL DASM進行查看&#xff0c;但CLR以dll…

表單的全選取消全選

<div class"wrap"><table border"1" cellspacing"0" cellpadding"0"><caption>恭喜發財</caption><thead><tr><th><input type"checkbox" id"j_cbAll" checked&quo…

VUE 數據綁定模塊渲染 computed(實現通過路由id 查詢數據json結構,對應的值來放在面包屑中)...

異步請求的值放在vuex中&#xff0c;然后頁面掛載該數據和渲染頁面 computed 計算屬性是基于它的依賴緩存的。計算屬性在它的相關依賴發生改變時會重新取值&#xff0c;所以當ajax請求回來的數據發生變化時&#xff0c;計算屬性的值會進行更新&#xff0c;相關的模板引用也會重…

ThinkJs筆記瑣碎

ThinkJs筆記瑣碎 記錄一些瑣碎的在使用ThinkJs遇到的問題 靜態資源訪問 ThinkJs默認production環境關閉對www下資源的相對路徑的訪問&#xff0c;官方建議通過nginx轉向的地址的絕對路徑訪問&#xff0c;想要在production環境訪問相對路徑的話需要到src/config/middleware.js里…