接下来我们来学习如何在JavaScript中定义变量!

什么是变量

变量可以看作是存储信息的容器。在编程中,我们使用变量来存储数据值。 JavaScript 是一种动态类型语言,这意味着您不需要声明变量的类型。类型将在程序执行过程中自动确定。

声明变量

在 JavaScript 中,可以使用 var、let 或 const 关键字来声明变量:

例如:

var name = \\\"Alice\\\"; // Using var to declare a variablelet age = 30; // Using let to declare a variableconst city = \\\"London\\\"; // Using const to declare a constant

变量的类型

在 JavaScript 中,有几种不同的数据类型:

使用变量

变量声明后,就可以在程序中使用它们:

console.log(name); // Outputs: Aliceconsole.log(\\\"Age: \\\"   age); // Outputs: Age: 30console.log(city   \\\" is a beautiful city\\\"); // Outputs: London is a beautiful city

console.log() 静态方法向控制台输出一条消息。

\\\"Mastering

DOM操作

DOM (Document Object Model) 是一个跨平台、与语言无关的接口,它将 HTML 和 XML 文档视为树结构,其中每个节点都是文档的一部分,例如元素、属性和文本内容。

访问 DOM 元素

要操作网页的内容,首先需要访问 DOM 树中的元素。您可以使用各种方法来访问元素,例如通过元素的 ID、类名称或标签名称:

let elementById = document.getElementById(\\\"elementId\\\"); // Access element by IDlet elementsByClassName = document.getElementsByClassName(\\\"className\\\"); // Access a collection of elements by class namelet elementsByTagName = document.getElementsByTagName(\\\"tagName\\\"); // Access a collection of elements by tag name

在EconoMe项目的~/project/script.js文件中添加以下代码:

const form = document.getElementById(\\\"record-form\\\");const recordsList = document.getElementById(\\\"records-list\\\");const totalIncomeEl = document.getElementById(\\\"total-income\\\");const totalExpenseEl = document.getElementById(\\\"total-expense\\\");const balanceEl = document.getElementById(\\\"balance\\\");

修改元素内容

一旦引用了某个元素,就可以修改其内容。 innerHTML 和 textContent 属性通常用于此目的。

例如,要将

新 HTML 内容

插入到 id=content 的 div 元素中,并在 id=info 的 span 元素中将“Hello”替换为“新文本内容”,您可以使用以下 JavaScript 代码:

\\\"Mastering

添加和删​​除元素

您可以使用 JavaScript 动态添加或删除页面上的元素。

例如:

// Create a new elementlet newElement = document.createElement(\\\"div\\\");newElement.textContent = \\\"Hello, world!\\\";document.body.appendChild(newElement); // Add the new element to the document bodydocument.body.removeChild(newElement); // Remove the element from the document body

事件处理

事件侦听器允许您响应用户操作。

addEventListener(\\\"event\\\", function () {});

例如点击、悬停或按键:

elementById.addEventListener(\\\"click\\\", function () {  console.log(\\\"Element was clicked!\\\");});

\\\"Mastering

学习完基本的DOM操作后,可以在EconoMe项目的~/project/script.js文件中添加以下代码:

document.addEventListener(\\\"DOMContentLoaded\\\", function () {  const form = document.getElementById(\\\"record-form\\\");  const recordsList = document.getElementById(\\\"records-list\\\");  const totalIncomeEl = document.getElementById(\\\"total-income\\\");  const totalExpenseEl = document.getElementById(\\\"total-expense\\\");  const balanceEl = document.getElementById(\\\"balance\\\");  let draggedIndex = null; // Index of the dragged item});

JavaScript 中的 DOMContentLoaded 事件在初始 HTML 文档完全加载和解析后被触发,无需等待样式表、图像和子框架完成加载。这使得它成为 DOM 准备好后立即运行 JavaScript 代码的重要事件,确保脚本与完全解析的 HTML 元素进行交互。

本实验此时不需要预览效果。我们将按照以下步骤完成代码后进行审核。

概括

在本实验室中,您开始了与 Alex 一起构建个人财务追踪器的基础部分的旅程。通过设置项目环境并使用 JavaScript 操作 DOM,显示初始财务状态,您已经为动态 Web 应用程序做好了准备。关键要点是了解 JavaScript 如何与 HTML 元素交互以动态更改网页内容,为以下步骤中的更多交互功能奠定基础。

这种实践方法不仅可以巩固您对 JavaScript 和 DOM 操作的理解,还可以模拟现实世界的 Web 开发场景,为您未来更复杂的项目做好准备。


?立即练习:基本 JavaScript 和 DOM


想了解更多吗?

","image":"http://www.luping.net/uploads/20241022/17296059666717b14edad29.png","datePublished":"2024-11-02T14:40:20+08:00","dateModified":"2024-11-02T14:40:20+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 掌握 JavaScript 和 DOM 操作

掌握 JavaScript 和 DOM 操作

發佈於2024-11-02
瀏覽:256

介绍

Mastering JavaScript and DOM Manipulation

在本实验室中,您将通过 Alex 的视角进入 Web 开发的世界,Alex 是一位崭露头角的 Web 开发人员,其任务是创建动态的个人财务跟踪器。构建一个用户友好的应用程序,允许用户输入和跟踪他们的日常支出和收入。目标很明确 - 开发一个既直观又有吸引力的界面,确保用户可以轻松管理他们的财务,没有任何麻烦。该项目不仅旨在简化个人财务管理,还向您介绍 JavaScript 和 DOM 操作的基本概念。

我们将通过 5 个实验室来完成 EconoMe 项目。

Mastering JavaScript and DOM Manipulation

知识点

  • 变量声明(let、const)
  • DOM操作基础知识(获取元素、修改元素内容)
  • 事件监听(addEventListener)

基本 JavaScript

JavaScript 是一种简单、面向对象、事件驱动的语言。从服务器下载到客户端并由浏览器执行。

它可以与 HTML 和 Web 一起使用,更广泛地用于服务器、PC、笔记本电脑、平板电脑和智能手机。

其特点包括:

  • 通常用于编写客户端脚本。
  • 主要用于在HTML页面中添加交互行为。
  • 它是一种解释性语言,按解释方式执行。

那么,我们如何在 HTML 中包含 JavaScript?

包含方法与CSS类似,可以通过三种方式完成:

  • 直接在 HTML 标记中,适用于特别短的 JavaScript 代码。
  • 使用
  • 使用外部 JavaScript 文件,将 JavaScript 脚本代码写入后缀为 .js 的文件中,并通过设置

例如,如果我们按F12,我们可以看到该页面中包含了很多外部JavaScript文件,通过点击Event Listeners,我们可以观察到该页面中存在多种类型的事件页。

Mastering JavaScript and DOM Manipulation

现在,让我们将


  
    
    
    EconoMe
    
    
    
  
  

接下来我们来学习如何在JavaScript中定义变量!

什么是变量

变量可以看作是存储信息的容器。在编程中,我们使用变量来存储数据值。 JavaScript 是一种动态类型语言,这意味着您不需要声明变量的类型。类型将在程序执行过程中自动确定。

声明变量

在 JavaScript 中,可以使用 var、let 或 const 关键字来声明变量:

  • var:在ES6之前,var是声明变量的主要方式,并且它具有函数作用域。
  • let:ES6 中引入,let 允许您声明块作用域的局部变量。
  • const:ES6中也引入了,用于声明一个常量,一旦声明就不能改变。

例如:

var name = "Alice"; // Using var to declare a variable
let age = 30; // Using let to declare a variable
const city = "London"; // Using const to declare a constant

变量的类型

在 JavaScript 中,有几种不同的数据类型:

  • 字符串:文本数据,例如“Hello,World!”。
  • 数字:整数或浮点数,例如 42 或 3.14。
  • 布尔值:真或假。
  • 对象:可以存储多个值或复杂的数据结构。
  • null 和 undefined:分别表示“无值”和“值未定义”的特殊类型。

使用变量

变量声明后,就可以在程序中使用它们:

console.log(name); // Outputs: Alice
console.log("Age: "   age); // Outputs: Age: 30
console.log(city   " is a beautiful city"); // Outputs: London is a beautiful city

console.log() 静态方法向控制台输出一条消息。

Mastering JavaScript and DOM Manipulation

DOM操作

DOM (Document Object Model) 是一个跨平台、与语言无关的接口,它将 HTML 和 XML 文档视为树结构,其中每个节点都是文档的一部分,例如元素、属性和文本内容。

访问 DOM 元素

要操作网页的内容,首先需要访问 DOM 树中的元素。您可以使用各种方法来访问元素,例如通过元素的 ID、类名称或标签名称:

let elementById = document.getElementById("elementId"); // Access element by ID
let elementsByClassName = document.getElementsByClassName("className"); // Access a collection of elements by class name
let elementsByTagName = document.getElementsByTagName("tagName"); // Access a collection of elements by tag name

在EconoMe项目的~/project/script.js文件中添加以下代码:

const form = document.getElementById("record-form");
const recordsList = document.getElementById("records-list");
const totalIncomeEl = document.getElementById("total-income");
const totalExpenseEl = document.getElementById("total-expense");
const balanceEl = document.getElementById("balance");

修改元素内容

一旦引用了某个元素,就可以修改其内容。 innerHTML 和 textContent 属性通常用于此目的。

例如,要将

新 HTML 内容

插入到 id=content 的 div 元素中,并在 id=info 的 span 元素中将“Hello”替换为“新文本内容”,您可以使用以下 JavaScript 代码:

Mastering JavaScript and DOM Manipulation

添加和删​​除元素

您可以使用 JavaScript 动态添加或删除页面上的元素。

例如:

// Create a new element
let newElement = document.createElement("div");
newElement.textContent = "Hello, world!";
document.body.appendChild(newElement); // Add the new element to the document body
document.body.removeChild(newElement); // Remove the element from the document body
  • 在 HTML 文档中,document.createElement() 方法创建 HTML 元素。
  • document.body.appendChild() 方法将新元素添加到 元素的末尾。
  • document.body.removeChild() 方法从 元素中删除该元素。

事件处理

事件侦听器允许您响应用户操作。

addEventListener("event", function () {});

例如点击、悬停或按键:

elementById.addEventListener("click", function () {
  console.log("Element was clicked!");
});

Mastering JavaScript and DOM Manipulation

学习完基本的DOM操作后,可以在EconoMe项目的~/project/script.js文件中添加以下代码:

document.addEventListener("DOMContentLoaded", function () {
  const form = document.getElementById("record-form");
  const recordsList = document.getElementById("records-list");
  const totalIncomeEl = document.getElementById("total-income");
  const totalExpenseEl = document.getElementById("total-expense");
  const balanceEl = document.getElementById("balance");
  let draggedIndex = null; // Index of the dragged item
});

JavaScript 中的 DOMContentLoaded 事件在初始 HTML 文档完全加载和解析后被触发,无需等待样式表、图像和子框架完成加载。这使得它成为 DOM 准备好后立即运行 JavaScript 代码的重要事件,确保脚本与完全解析的 HTML 元素进行交互。

本实验此时不需要预览效果。我们将按照以下步骤完成代码后进行审核。

概括

在本实验室中,您开始了与 Alex 一起构建个人财务追踪器的基础部分的旅程。通过设置项目环境并使用 JavaScript 操作 DOM,显示初始财务状态,您已经为动态 Web 应用程序做好了准备。关键要点是了解 JavaScript 如何与 HTML 元素交互以动态更改网页内容,为以下步骤中的更多交互功能奠定基础。

这种实践方法不仅可以巩固您对 JavaScript 和 DOM 操作的理解,还可以模拟现实世界的 Web 开发场景,为您未来更复杂的项目做好准备。


?立即练习:基本 JavaScript 和 DOM


想了解更多吗?

  • ?学习最新的 JavaScript 技能树
  • ?阅读更多 JavaScript 教程
  • ?加入我们的 Discord 或发推文@WeAreLabEx
版本聲明 本文轉載於:https://dev.to/labex/mastering-javascript-and-dom-manipulation-3e3e?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    程式設計 發佈於2025-07-03
  • 為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,輸出...
    程式設計 發佈於2025-07-03
  • Java為何無法創建泛型數組?
    Java為何無法創建泛型數組?
    通用陣列創建錯誤 arrayList [2]; JAVA報告了“通用數組創建”錯誤。為什麼不允許這樣做? 答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<my...
    程式設計 發佈於2025-07-03
  • Go語言垃圾回收如何處理切片內存?
    Go語言垃圾回收如何處理切片內存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片時,了解垃圾收集行為至關重要,以避免潛在的內存洩...
    程式設計 發佈於2025-07-03
  • 如何使用替換指令在GO MOD中解析模塊路徑差異?
    如何使用替換指令在GO MOD中解析模塊路徑差異?
    在使用GO MOD時,在GO MOD 中克服模塊路徑差異時,可能會遇到衝突,其中3個Party Package將另一個PAXPANCE帶有導入式套件之間的另一個軟件包,並在導入式套件之間導入另一個軟件包。如迴聲消息所證明的那樣: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
    程式設計 發佈於2025-07-03
  • 如何將PANDAS DataFrame列轉換為DateTime格式並按日期過濾?
    如何將PANDAS DataFrame列轉換為DateTime格式並按日期過濾?
    將pandas dataframe列轉換為dateTime格式示例:使用column(mycol)包含以下格式的以下dataframe,以自定義格式:})指定的格式參數匹配給定的字符串格式。轉換後,MyCol列現在將包含DateTime對象。 date date filtering > = ...
    程式設計 發佈於2025-07-03
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-07-03
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在Java中的多個返回類型:一種誤解類型:在Java編程中揭示,在Java編程中,Peculiar方法簽名可能會出現,可能會出現,使開發人員陷入困境,使開發人員陷入困境。 getResult(string s); ,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但這確實是如此嗎...
    程式設計 發佈於2025-07-03
  • Java中假喚醒真的會發生嗎?
    Java中假喚醒真的會發生嗎?
    在Java中的浪費喚醒:真實性或神話? 在Java同步中偽裝喚醒的概念已經是討論的主題。儘管存在這種行為的潛力,但問題仍然存在:它們實際上是在實踐中發生的嗎? Linux的喚醒機制根據Wikipedia關於偽造喚醒的文章,linux實現了pthread_cond_wait()功能的Linux實現,...
    程式設計 發佈於2025-07-03
  • PHP未來:適應與創新
    PHP未來:適應與創新
    PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。 引言在編程世界中,PHP一直是網頁開發的中流砥柱。作為一個從1994年就開始發展...
    程式設計 發佈於2025-07-03
  • 如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    postgresql:為每個唯一標識符在postgresql中提取最後一行,您可能需要遇到與數據集合中每個不同標識的信息相關的信息。考慮以下數據:[ 1 2014-02-01 kjkj 在數據集中的每個唯一ID中檢索最後一行的信息,您可以在操作員上使用Postgres的有效效率: id dat...
    程式設計 發佈於2025-07-03
  • 如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
    如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
    在Visual Studio 2012 儘管已安裝了MySQL Connector v.6.5.4,但無法將MySQL數據庫添加到實體框架的“ DataSource對話框”中。為了解決這一問題,至關重要的是要了解MySQL連接器v.6.5.5及以後的6.6.x版本將提供MySQL的官方Visual...
    程式設計 發佈於2025-07-03
  • 如何使用Python理解有效地創建字典?
    如何使用Python理解有效地創建字典?
    在python中,詞典綜合提供了一種生成新詞典的簡潔方法。儘管它們與列表綜合相似,但存在一些顯著差異。 與問題所暗示的不同,您無法為鑰匙創建字典理解。您必須明確指定鍵和值。 For example:d = {n: n**2 for n in range(5)}This creates a dict...
    程式設計 發佈於2025-07-03
  • 為什麼不使用CSS`content'屬性顯示圖像?
    為什麼不使用CSS`content'屬性顯示圖像?
    在Firefox extemers屬性為某些圖像很大,&& && && &&華倍華倍[華氏華倍華氏度]很少見,卻是某些瀏覽屬性很少,尤其是特定於Firefox的某些瀏覽器未能在使用內容屬性引用時未能顯示圖像的情況。這可以在提供的CSS類中看到:。 googlepic { 內容:url(&...
    程式設計 發佈於2025-07-03
  • Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    在ASP.NET async void void async void void void void void的設計無需返回asynchroncon而無需返回任務對象。他們在執行過程中增加未償還操作的計數,並在完成後減少。在某些情況下,這種行為可能是有益的,例如未期望或明確預期操作結果的火災和...
    程式設計 發佈於2025-07-03

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3