JavaScript 系列博客(五)

来源:https://www.cnblogs.com/zuanzuan/archive/2018/12/23/10163737.html
-Advertisement-
Play Games

JavaScript 系列博客(五) 前言 本篇博客學習 js 選擇器來控制 css 和 html、使用事件(鉤子函數)來處理事件完成後完成指定功能以及js 事件控制頁面內容。 js 選擇器 在學習 js 選擇器前需要瞭解幾個概念。 節點(一):在文檔(document)中出現的所有內容都是 doc ...


JavaScript 系列博客(五)

前言

本篇博客學習 js 選擇器來控制 css 和 html、使用事件(鉤子函數)來處理事件完成後完成指定功能以及js 事件控制頁面內容。

js 選擇器

在學習 js 選擇器前需要瞭解幾個概念。

  • 節點(一):在文檔(document)中出現的所有內容都是 document 中的節點。
  • 節點(二):標簽節點(元素 element) | 註釋節點 | 文本節點 | <!doctype>節點。

js 選擇器是將 js 與 html 建立起連接的橋梁,就好比 css 選擇器是 css 與 html 的橋梁,不過js 中將 html 標簽稱為元素。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>js選擇器</title>
    <style>
        #d {
            color: red;
        }
    </style>
</head>
<body id="bd">
    <!--註釋-->
    <div id="d" class="dd">我是ddd111</div>
    <div id="d" class="dd">我是ddd222</div>

    <div class="sup1">
        <div id="div"></div>
    </div>
    <div class="sup2">
        <div id="div"></div>
    </div>
</body>
</html>

通過 id 名進行匹配

<script>
    console.log(d); // 兩個都可以匹配到
    </script>

通過 getElement

所有顯示在頁面中的內容都是屬於文檔(document)對象的內容,存放在文檔中。

console.log(document)
// id 獲取
getElementById('id 名'); // 只能由 document 來調用

// class 獲取
getElementByClassName('class 名'); // 可以由 document 以及所有父級調用

// tag 獲取
getElementByTagName('標簽名'); // 可以由 document 以及所屬父級調用

querySelector

// 獲取第一個滿足要求的目標
querySelector()

// 獲取所有滿足要求的目標
querySelectorAll()

// 1. 參數:採用的為 css 選擇器語法
// 2. 可以由 document 以及父級來調用
// 3. 對 id 檢索不嚴謹,慎用 id 選擇器

js 操作頁面內容

  • 文本內容
box.innerText
// 可以設置,也可以直接獲取值
  • 標簽內容
box.innerHTML
// 可以設置,也可以獲取值,能解析 html 語法代碼

box.outerHTML
// 獲取包含自身標簽信息的所有子內容信息
  • 樣式
/ box.style.樣式名  ==> 可以設值,也可以獲取,但操作的只能是行間式

// getComputedStyle(box, null).樣式名 ==> 只能獲取值,不能設值, 能獲取所有方式設置的值(行間式 與 計算後樣式)

// 註: 獲取計算後樣式,需要關註值的格式
  • 頁面標簽全局屬性操作
ele.getAttribute("alert");
// 獲取頁面標簽ele的alert全局屬性的值, 如果沒有該全局屬性值為null

ele.setAttribute("attr_key", "attr_value");
// 頁面標簽ele已有該全局屬性,就是修改值, 沒有就是添加該全局屬性並賦相應值
// 註: 一般應用場景, 結合css的屬性選擇器完成樣式修改

事件

// js事件: 頁面標簽在滿足某種條件下可以完成指定功能的這種過程, 成之為事件
// 某種條件: 如滑鼠點擊標簽: 點擊事件 | 滑鼠雙擊標簽: 雙擊事件 | 鍵盤按下: 鍵盤按下事件
// 指定功能: 就是開發者根據實際需求完整相應的功能實現

// 鉤子函數: 就是滿足某種條件被系統回調的函數(完成指定功能)
// 點擊事件: 明確激活鉤子的條件 = 激活鉤子後改處理什麼邏輯, 完成指定功能(函數)

// 獲取頁面標簽是前提
var div = document.querySelector('.div');
// 鉤子條件: 雙擊 = 指定功能(自身背景顏色變紅)
div.ondblclick = function () {
    this.style.backgroundColor = 'red';
}

事件的綁定

// 第一種
box.onclick = function(){}
// 只能綁定一個實現體, 如果有多次綁定, 保留最後一次
// box.onclick = null來取消事件的綁定

// 第二種
var fn = function() {}
box.addEventListener('click', fn)
// 能綁定多個實現體, 如果有多次綁定, 按順序依次執行
// box.removerEventListener('click', fn)來取消事件的綁定
// 瞭解: 第三個參數決定冒泡順序(子父級誰先相應事件)

事件對象

// 系統回調事件函數時, 傳遞了一個 事件(event) 實參
// 如果要使用傳遞來的實參 事件(event), 定義接收的 形參 即可
box.onclick = function(ev){
    // 使用事件對象
    // 特殊按鍵 eg: ev.altKey: true | false
    // 滑鼠觸發點: ev.clientX | ev.clientY
    
    // 取消冒泡
    ev.cancelBubber = true;
    
    // 取消預設事件
    return false;
}

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

-Advertisement-
Play Games
更多相關文章
  • 在本文中,我們將演示如何使用Android Studio和Java編程語言創建一個示例Android應用程式,從“臨時”實現高級響應用戶界面的功能。本文中討論的應用程式將實現機場航班時刻表模擬的功能。在開發生命周期中,我們將實現Android應用程式的響應式用戶界面,用於呈現“到達”和“離開”航班的 ...
  • 一,效果圖。 二,代碼。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>javascript break和continue語句</title> </head> <body> <!--break語句--> <p>點擊按鈕,測試帶 ...
  • 2017-09-23開始學習電腦專業 2018-12-23開始寫下第一篇博客,記錄自己在前端學習路上的歷程,分享自己的學習過程,為了更好的成長。 首先,來介紹以下HTML,請看: HTML 超文本標記語言,標準通用標記語言下的一個應用。“超文本”就是指頁面內可以包含圖片、鏈接,甚至音樂、程式等非文 ...
  • 這裡只是對自己的學習進行一次總結,也是為了讓自己以後如果長時間不使用快速記憶起來的筆記,如果想要學習,還是去官網看文檔比較好一些。、 註意 下麵的代碼的 script標簽的type類型都為 “text/babel” 目錄 一、無狀態組件 二、函數式聲明 三、this以及事件對象 四、操作dom元素 ...
  • 1.前言 在平時的業務開發中,前端通常需要請求後臺獲取數據,或者NodeJs讀取文件等等一系列的非同步操作,我們通常需要利用非同步操作的結果或者對非同步操作的結果進行處理。通常我們的解決方案是:在非同步操作成功或者失敗的回調函數裡面寫方法,在非同步操作比較簡單的時候這樣寫代碼還是比較好理解的,當業務逐漸趨於復 ...
  • 一、什麼是HTML? HTML:超文本標簽語言 (Hyper Text Markup Language) www萬維網的描述性語言。 XHTML指可擴展超文本標記語言(標識語言)(EXtensible HyperText Markup Language)是一種置標語言,表現方式與超文本標記語言(HT ...
  • 1、先寫結構 a.如果列表沒有時間 結構為:<li><a>新聞內容</a></li> b.如果列表有時間 結構為:<li><a>新聞內容</a><span>時間</span></li> 2、給li添加高度 3、若列表有時間,給a標簽,span標簽添加浮動 4、調整文本樣式(大小,顏色等) 5、以背景 ...
  • 函數式編程 filter的使用 reduce curry let dragon = (name,size,element) = console.log(dragon('fluffykins','tiny','lightling')) //curry let dragon = name = size ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...