javaScript(六):DOM操作

文章目錄

      • 1、DOM介紹
      • 2、DOM:獲取Element對象
      • 3、DOM:事件監聽
        • 3.1、事件介紹
        • 3.2、常見事件
        • 3.3、設置事件的兩種方式
        • 3.4、事件案例

1、DOM介紹

概念

Document Object Model ,文檔對象模型

將標記語言的各個組成部分封裝為對應的對象:

  • Document:整個文檔對象
  • Element:元素對象
  • Attribute:屬性對象
  • Text:文本對象
  • Comment:注釋對象

JavaScript 通過DOM,就能夠對HTML進行操作:

  • 改變 HTML 元素的內容
  • 改變 HTML 元素的樣式(CSS)
  • 對 HTML DOM 事件作出反應
  • 添加和刪除 HTML 元素

image-20231210205306545

2、DOM:獲取Element對象

HTML中的Element對象可以通過Document對象獲取,而Document對象是通過window對象獲取的。

Document對象中提供了以下獲取Element元素對象的函數:

1、根據id屬性值獲取,返回單個Element對象

<img id="light" src="img/off.gif"> <br>
<script>document.getElementById("light").src = "img/on.gif";
</script>

2、根據標簽名稱獲取,返回Element對象數組

<div>小林</div>   <br>
<div>不想努力了</div> <br><script>// getElementsByTagName:根據標簽名稱獲取元素數組// innerHTML:表示修改標簽元素中的內容let htmlDivElement = document.getElementsByTagName("div");for (let element of htmlDivElement){element.innerHTML = "哈哈";}
</script>

3、根據name屬性值獲取,返回Element對象數組

<input type="checkbox" name="hobby"> 電影
<input type="checkbox" name="hobby"> 旅游
<input type="checkbox" name="hobby"> 游戲<script>let elementsByName = document.getElementsByName("hobby");for (let hobbyElement of elementsByName) {hobbyElement.checked = true;}
</script>

4、根據class屬性值獲取,返回Element對象數組

<div class="cls">Java</div><br>
<div class="cls">PHP</div><br><script>let elementsByClassName = document.getElementsByClassName("cls");for (let ClassNameElement of elementsByClassName) {ClassNameElement.innerHTML = "嘻嘻";}
</script>

3、DOM:事件監聽

3.1、事件介紹

什么是事件

? 用戶可以對網頁的元素有各種不同的操作如:單擊,雙擊,鼠標移動等這些操作就稱為事件。事件通常與函數配合使用,這樣就可以通過發生的事件來驅動JavaScript函數執行。

3.2、常見事件
事件名說明
onclick鼠標單擊事件
onblur元素失去焦點
onfocus元素獲得焦點
onload某個頁面或圖像被完成加載
onsubmit當表單提交時觸發該事件
onkeydown某個鍵盤的鍵被按下
onmouseover鼠標被移到某元素之上
onmouseout鼠標從某元素移開
3.3、設置事件的兩種方式

方式一:命名函數

通過標簽中的事件屬性進行綁定

<button type="button" onclick="函數名()"></button><script>// 命名函數設置事件function abc(){alert("你點我了")}
</script>

方式二:匿名函數

通過DOM元素屬性綁定

<input type="button" id="btn"><script>// 匿名函數設置失去焦點的事件document.getElementById("btn").onclick = function (){alert("我被點了")}
</script>
3.4、事件案例

當輸入用戶名時顯示正在輸入,離開時顯示請輸入

image-20231210214202981

案例代碼

用戶名: <input id="in1" name="user">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id="sp1">請輸入</span><script>document.getElementById("in1").onfocus = function (){document.getElementById("sp1").innerHTML = "正在輸入"}document.getElementById("in1").onblur = function (){document.getElementById("sp1").innerHTML = "請輸入"}
</script>

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

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

相關文章

Realme X7 Pro Root 刷機教程

Realme X7 Pro 刷機教程 Just For Fun&#xff0c;最近倒騰了下Realme X7 Pro 刷root。此博客為個人記錄刷機過程&#xff0c;如有機友跟隨本教程操作&#xff0c;請謹慎操作&#xff01;&#xff01;&#xff01; 以下教程真針對Realme X7 Pro&#xff0c;其他版本方法未知&…

springboot(ssm高校競賽管理系統 在線競賽平臺 Java系統

springboot(ssm高校競賽管理系統 在線競賽平臺 Java系統 開發語言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服務器&#xff1a;tomcat 數據庫&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 數…

qt 模型視圖結構

在Qt中&#xff0c;Model、View和Delegate三者之間的關系如下&#xff1a; Model&#xff08;模型&#xff09;&#xff1a;Model是數據的抽象表示&#xff0c;它提供了一種結構化的方式來存儲和管理數據。Model負責維護數據的狀態&#xff0c;并提供接口供其他組件&#xff08…

【Flutter】vs2022上開發flutter

在vs上開發flutter&#xff0c;結果擴展倉庫上沒辦法找到Dart&#xff0c;Flutter。 在 這 搜索Dart時也無法找到插件。 最后發現是安裝工具出錯了 安裝了 開發需要的是

挖漏洞之文件上傳

&#xff08;一&#xff09;漏洞原理 文件上傳漏洞是指由于程序員在對用戶文件上傳部分的控制不足或者處理缺陷&#xff0c;而導致的用戶可以越過其本身權限向服務器上上傳可執行的動態腳本文件。這里上傳的文件可以是木馬&#xff0c;病毒&#xff0c;惡意腳本或者WebShell等。…

從線性回歸到神經網絡

目錄 一、線性回歸關鍵思想 1、線性模型 2、基礎優化算法 二、線性回歸的從零開始實現 1、生成數據集 2、讀取數據集 3、初始化模型參數 4、定義模型 5、定義損失函數 6、定義優化算法 7、訓練 三、線性回歸的簡潔實現 1、生成數據集 2、讀取數據集 3、定義模型…

論文代碼閱讀:TGN模型訓練階段代碼理解

文章目錄 [toc] TGN模型訓練階段代碼理解論文信息代碼過程手繪代碼訓練過程compute_temporal_embeddingsupdate_memoryget_raw_messagesget_updated_memoryself.message_aggregator.aggregateself.memory_updater.get_updated_memoryMemoryget_embedding_moduleGraphAttentionE…

什么是W3C標準? 什么要遵循?

Hi i,m JinXiang ? 前言 ? 本篇文章主要介紹HTML5中W3C的標準&#xff0c;需要遵循的規則以及部分理論知識 &#x1f349;歡迎點贊 &#x1f44d; 收藏 ?留言評論 &#x1f4dd;私信必回喲&#x1f601; &#x1f349;博主收將持續更新學習記錄獲&#xff0c;友友們有任何問…

【AIGC】Midjourney高級進階版

Midjourney 真是越玩越上頭&#xff0c;真是給它的想象力跪了~ 研究了官方API&#xff0c;出一個進階版教程 命令 旨在介紹Midjourney在Discord頻道中的文本框中支持的指令。 1&#xff09;shorten 簡化Prompt 該指令可以將輸入的Prompt為模型可以理解的語言。模型理解語言…

Git初學入門指令

git基本指令 初始化&#xff1a; git init查看狀態&#xff1a; git status新建文件&#xff1a; touch <filename>加入暫存區&#xff1a; git add . 或者 git add -A 表示全部加入暫存區 git add <filename>單個文件加入暫存區加入倉庫&#xff1a; …

PCIe中斷總結-各個中斷的區別

1.簡介&#xff1a; PCIe中斷支持三種傳輸方式&#xff1a; ? Legacy: 也稱傳統中斷&#xff0c;Legacy PCI中斷機制,每個PCI設備最多支持四個中斷信號(邊帶信號:INTA# INTB# INTC# INTD#) ? MSI(Message Signaled Interrupt): Post Memory Write,只支持32個中斷向量 ? MSI…

力扣labuladong一刷day35天

力扣labuladong一刷day35天 文章目錄 力扣labuladong一刷day35天一、98. 驗證二叉搜索樹二、700. 二叉搜索樹中的搜索三、701. 二叉搜索樹中的插入操作四、450. 刪除二叉搜索樹中的節點 一、98. 驗證二叉搜索樹 題目鏈接&#xff1a;https://leetcode.cn/problems/validate-bi…

【Linux】如何對文本文件進行有條件地劃分?——cut命令

cut 命令可以根據一個指定的標記&#xff08;默認是 tab&#xff09;來為文本劃分列&#xff0c;然后將此列顯示。 例如想要顯示 passwd 文件的第一列可以使用以下命令&#xff1a;cut –f 1 –d : /etc/passwd cut&#xff1a;用于從文件的每一行中提取部分內容的命令。-f 1&…

Sql server數據庫數據查詢

請查詢學生信息表的所有記錄。 答&#xff1a;查詢所需的代碼如下&#xff1a; USE 學生管理數據庫 GO SELECT * FROM 學生信息表 執行結果如下&#xff1a; 查詢學生的學號、姓名和性別。 答&#xff1a;查詢所需的代碼如下&#xff1a; USE 學生管理數據庫 GO SELE…

為什么需要 Kubernetes,它能做什么?

傳統部署時代&#xff1a; 早期&#xff0c;各個組織是在物理服務器上運行應用程序。 由于無法限制在物理服務器中運行的應用程序資源使用&#xff0c;因此會導致資源分配問題。 例如&#xff0c;如果在同一臺物理服務器上運行多個應用程序&#xff0c; 則可能會出現一個應用程…

【QED】高昂的貓 Ⅰ

目錄 題目背景題目描述輸入格式輸出格式 測試樣例樣例說明數據范圍 思路核心代碼 題目背景 這是小橘。因為它總是看起來很高傲&#xff0c;所以人送外號“高昂的貓”。 題目描述 "錒狗"的房間里放著 n n n ( 1 ≤ n ≤ 1 0 9 ) (1 \leq n \leq 10^9) (1≤n≤109)個…

C# 使用CancellationTokenSource 取消Task執行

寫在前面 在Task創建并執行后&#xff0c;如果狀態發生了變化&#xff0c;需要取消正在執行中的Task&#xff0c;除了使用主線程上的共享變量來判斷之外&#xff0c;更優雅的方式就是就是用CancellationTokenSource來取消任務的執行。 代碼實現 public static void CancelTas…

主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ]

主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ] 一&#xff0c;MQ對比圖 下面是 Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ 的更詳細和專業的對比&#xff1a; 特性/功能KafkaRabbitMQZeroMQRocketMQActiveMQ語言JavaErlangCJavaJava協議自有協議AMQP自有協…

算法工程師-機器學習面試題總結(6)

目錄 1.Bagging的思想是什么&#xff1f;它是降低偏差還是方差&#xff0c;為什么&#xff1f; 2.可否將RF的基分類模型由決策樹改成線性模型或者knn&#xff1f;為什么&#xff1f; 3.GBDT梯度提升和梯度下降有什么區別和聯系&#xff1f; 4.如何理解Boosting和Bagging&am…

基于ssm高校實驗室管理系統的設計與實現論文

摘 要 互聯網發展至今&#xff0c;無論是其理論還是技術都已經成熟&#xff0c;而且它廣泛參與在社會中的方方面面。它讓信息都可以通過網絡傳播&#xff0c;搭配信息管理工具可以很好地為人們提供服務。針對高校實驗室信息管理混亂&#xff0c;出錯率高&#xff0c;信息安全性…