接下来我们来学习如何在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
瀏覽:797

介绍

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]刪除
最新教學 更多>
  • IntTo Float64 JSON轉換之謎
    IntTo Float64 JSON轉換之謎
    使用 JSON 聽起來簡單明了,你有一些結構,你可以將其更改為 JSON - 一種通用的統一語言並返回到你的結構。簡單吧? ? 嗯,是的,但是直到您遇到 Marshal / Unmarshal 函數的一些奇怪行為。 問題 ? 這一切都是從我嘗試從 JWT 令牌讀取編碼的有效負載時...
    程式設計 發佈於2024-11-02
  • 如何從 Ubuntu 12.04 中徹底刪除 MySQL 5.7?
    如何從 Ubuntu 12.04 中徹底刪除 MySQL 5.7?
    刪除 MySQL 5.7:清除和卸載綜合指南要從 Ubuntu 12.04 系統中完全刪除 MySQL 5.7,請按照以下綜合步驟操作:備份資料庫在繼續卸載之前,請確保您已使用 mysqldump 公用程式備份了基本資料庫。僅備份所需的資料庫,因為完整資料庫備份可能是卸載問題的根本原因。 停止MyS...
    程式設計 發佈於2024-11-02
  • 如何在沒有 CLI 存取的情況下清除共享託管伺服器上的 Laravel 5 快取?
    如何在沒有 CLI 存取的情況下清除共享託管伺服器上的 Laravel 5 快取?
    在Laravel 5 中清除共享託管伺服器上的快取在Laravel 5 中,您可以使用cache:clear Artisan 命令有效地清除快取。但是,在共享託管伺服器上工作時,您可能無權存取 CLI。這就提出了一個問題:我可以在缺乏控制面板存取權限的共用主機伺服器上不使用 CLI 來清除快取嗎? ...
    程式設計 發佈於2024-11-02
  • Websocket 或 Socket io!讓我們來看看吧!
    Websocket 或 Socket io!讓我們來看看吧!
    WebSockets 与 Socket.IO:实时对决 当谈到网络上的实时通信时,开发人员经常发现自己陷入两个选择之间:WebSockets 和 Socket.IO。这两种工具都擅长它们的工作——提供了一种在客户端和服务器之间实现双向通信的方法——但每种工具都有自己独特的个性。这有...
    程式設計 發佈於2024-11-02
  • Deno 起飛
    Deno 起飛
    网络是人类最大的软件平台,拥有超过 50 亿用户,并且还在不断增长。然而,随着 Web 开发需求的飙升,其复杂性也随之增加。在无尽的配置文件、大量的样板文件和大量的依赖项之间,开发人员花费更多的时间来进行设置,而不是构建下一个大东西。? 进入 Deno,这是一种用于 JavaScript 和 Typ...
    程式設計 發佈於2024-11-02
  • 使用 Django Rest Framework 尋找海森堡
    使用 Django Rest Framework 尋找海森堡
    The idea The idea was to create a simple platform for DEA agents, to manage information about characters from the Breaking Bad/Better Call Sa...
    程式設計 發佈於2024-11-02
  • 湯姆和傑瑞燈代碼
    湯姆和傑瑞燈代碼
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ...
    程式設計 發佈於2024-11-02
  • 透過實作學習 TDD:在 Umbraco 的富文本編輯器中標記成員
    透過實作學習 TDD:在 Umbraco 的富文本編輯器中標記成員
    在我正在建構的系統中,我需要能夠在網站的文字中提及 Umbraco 會員。為此,我需要建立 Umbraco 富文本編輯器的擴充:TinyMCE。 情境 作為內容編輯者,我想在訊息或文章中標記成員,以便他們收到有關其新內容的通知。 我研究了類似的實現,例如 Slack 或 X 上的...
    程式設計 發佈於2024-11-02
  • 如何在Python測試情境中模擬HTTP請求和回應?
    如何在Python測試情境中模擬HTTP請求和回應?
    Python 測試的模擬請求和回應在Python 測試中,有必要模擬模組及其功能來控制執行流程並驗證具體場景。其中,模擬 requests 模組通常用於測試依賴 HTTP 請求的函數或方法。 考慮一個包含以下程式碼的views.py 檔案:def myview(request): res1 ...
    程式設計 發佈於2024-11-02
  • 如何建立適用於 Windows、Linux 和 macOS 的 Python 條碼掃描器
    如何建立適用於 Windows、Linux 和 macOS 的 Python 條碼掃描器
    条形码扫描已成为从零售、物流到医疗保健等各个行业的重要工具。在桌面平台上,它可以快速捕获和处理信息,无需手动输入数据,从而节省时间并减少错误。在本教程中,我们将通过构建适用于 Windows、Linux 的 Python 条形码扫描仪 继续探索 Dynamsoft Capture Vision SD...
    程式設計 發佈於2024-11-02
  • ## 如何在 Python 中建立不可變物件以及為什麼 nametuple 是最好的方法?
    ## 如何在 Python 中建立不可變物件以及為什麼 nametuple 是最好的方法?
    Python 中的不可變物件在 Python 中,不變性為保護資料完整性提供了一種有價值的機制。然而,創建不可變物件會帶來一定的挑戰。 重寫 setattr常見的方法是重寫 setattr方法。然而,即使在 init 過程中也會呼叫此方法,因此它不適合建立不可變物件。 子類化 Tuple另一種策略涉...
    程式設計 發佈於2024-11-02
  • 最常被問到的 React 面試問題
    最常被問到的 React 面試問題
    如何優化 React 應用程式的效能? 1。組件應謹慎更新 實作 shouldComponentUpdate 或 React.memo 透過比較 props 或 states 來防止不必要的重新渲染。 2.使用功能組件和鉤子 帶鉤子的功能組件通常比類組件性能更高。 3.延遲載入...
    程式設計 發佈於2024-11-02
  • (Wordpress 初學者):僅將子網域從託管轉移(遷移)到另一個新託管。
    (Wordpress 初學者):僅將子網域從託管轉移(遷移)到另一個新託管。
    我只想從 Bluehost 託管轉移(遷移)一個新託管(例如 Fastcomet 或 Chemicloud)的子網域。 我想知道我遷移子網域的步驟是否正確以及我應該做什麼更改 DNS 內容...... ** 我的情況1:** – 主 Web 網域(例如:forcleanworld.com)保留在 ...
    程式設計 發佈於2024-11-02
  • 使用 Java 進行資料分析:資訊處理初學者指南
    使用 Java 進行資料分析:資訊處理初學者指南
    Java 是適用於資料分析的強大語言,它提供用於處理大型資料集和執行複雜分析的基礎結構,包括:資料結構:用於儲存和組織資料的集合,例如陣列和清單。 IO 流:用於讀取和寫入檔案的物件。 Java 集合框架:用於管理和操作資料結構的強大集合類別庫。使用 Java 進行資料分析的實際案例包括分析文字文件...
    程式設計 發佈於2024-11-02
  • 僱用自由 Python 開發人員時要避免的常見錯誤
    僱用自由 Python 開發人員時要避免的常見錯誤
    介紹 聘請合適的自由 Python 開發人員可以決定你的專案的成敗。然而,許多企業在招募過程中會犯一些常見的錯誤,這些錯誤可能會導致招募延遲、成本超支和結果不佳。以下是如何避免這些陷阱並確保專案成功的方法。 沒有明確定義專案要求 最常見的錯誤之一是在開始招募流程之...
    程式設計 發佈於2024-11-02

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

Copyright© 2022 湘ICP备2022001581号-3