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

介绍

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]刪除
最新教學 更多>
  • 如何使用FormData()處理多個文件上傳?
    如何使用FormData()處理多個文件上傳?
    )處理多個文件輸入時,通常需要處理多個文件上傳時,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    程式設計 發佈於2025-04-20
  • 如何使用不同數量列的聯合數據庫表?
    如何使用不同數量列的聯合數據庫表?
    合併列數不同的表 當嘗試合併列數不同的數據庫表時,可能會遇到挑戰。一種直接的方法是在列數較少的表中,為缺失的列追加空值。 例如,考慮兩個表,表 A 和表 B,其中表 A 的列數多於表 B。為了合併這些表,同時處理表 B 中缺失的列,請按照以下步驟操作: 確定表 B 中缺失的列,並將它們添加到表的...
    程式設計 發佈於2025-04-20
  • Go語言垃圾回收如何處理切片內存?
    Go語言垃圾回收如何處理切片內存?
    在Go Slices中的垃圾收集:詳細的分析在GO中,Slice是一個動態數組,引用了基礎陣列。使用切片時,了解垃圾收集行為至關重要,以避免潛在的內存洩漏。 考慮使用slice使用slice的以下實現:字符串{ R:=(*Q)[0] *q =(*q)[1:len(*q)] 返...
    程式設計 發佈於2025-04-20
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    刪除匿名事件偵聽器將匿名事件偵聽器添加到元素中會提供靈活性和簡單性,但是當要刪除它們時,可以構成挑戰,而無需替換元素本身就可以替換一個問題。 element? element.addeventlistener(event,function(){/在這里工作/},false); 要解決此問題,請考...
    程式設計 發佈於2025-04-20
  • 如何從PHP中的數組中提取隨機元素?
    如何從PHP中的數組中提取隨機元素?
    從陣列中的隨機選擇,可以輕鬆從數組中獲取隨機項目。考慮以下數組:; 從此數組中檢索一個隨機項目,利用array_rand( array_rand()函數從數組返回一個隨機鍵。通過將$項目數組索引使用此鍵,我們可以從數組中訪問一個隨機元素。這種方法為選擇隨機項目提供了一種直接且可靠的方法。
    程式設計 發佈於2025-04-20
  • 在所有瀏覽器中實現左對齊文本的斜線方法
    在所有瀏覽器中實現左對齊文本的斜線方法
    ] 在傾斜行上的文本對齊背景在傾斜行上實現左對齊的文本可能會構成挑戰,在nectera時尤其是挑戰。兼容性(返回IE9)。 通過引入一系列平方元素併計算其尺寸,我們可以創建一個有效的解決方案: .loop(@i) when (@i > 0){ .loop((@i - ...
    程式設計 發佈於2025-04-20
  • 在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8表中將latin1字符轉換為utf8 ,您遇到了一個問題,其中含義的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致電。為了解決此問題,您正在嘗試使用“ mb_convert_encoding”和“ iconv”轉換受...
    程式設計 發佈於2025-04-20
  • 您如何在Laravel Blade模板中定義變量?
    您如何在Laravel Blade模板中定義變量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配變量對於存儲以後使用的數據至關重要。在使用“ {{}}”分配變量的同時,它可能並不總是最優雅的解決方案。 幸運的是,Blade通過@php Directive提供了更優雅的方法: $ old_section =...
    程式設計 發佈於2025-04-20
  • 為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    mySQL錯誤#1089:錯誤的前綴鍵錯誤descript [#1089-不正確的前綴鍵在嘗試在表中創建一個prefix鍵時會出現。前綴鍵旨在索引字符串列的特定前綴長度長度,可以更快地搜索這些前綴。 了解prefix keys `這將在整個Movie_ID列上創建標準主鍵。主密鑰對於唯一識...
    程式設計 發佈於2025-04-20
  • 在Java中使用for-to-loop和迭代器進行收集遍歷之間是否存在性能差異?
    在Java中使用for-to-loop和迭代器進行收集遍歷之間是否存在性能差異?
    For Each Loop vs. Iterator: Efficiency in Collection TraversalIntroductionWhen traversing a collection in Java, the choice arises between using a for-...
    程式設計 發佈於2025-04-20
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-04-20
  • 為什麼儘管有效代碼,為什麼在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-04-20
  • 在JavaScript中如何並發運行異步操作並正確處理錯誤?
    在JavaScript中如何並發運行異步操作並正確處理錯誤?
    同意操作execution 在執行asynchronous操作時,相關的代碼段落會遇到一個問題,當執行asynchronous操作:此實現在啟動下一個操作之前依次等待每個操作的完成。要啟用並發執行,需要進行修改的方法。 第一個解決方案試圖通過獲得每個操作的承諾來解決此問題,然後單獨等待它們: c...
    程式設計 發佈於2025-04-20
  • 圖片在Chrome中為何仍有邊框? `border: none;`無效解決方案
    圖片在Chrome中為何仍有邊框? `border: none;`無效解決方案
    在chrome 在使用Chrome and IE9中的圖像時遇到的一個頻繁的問題是圍繞圖像的持續薄薄邊框,儘管指定了圖像,儘管指定了;和“邊境:無;”在CSS中。要解決此問題,請考慮以下方法: Chrome具有忽略“ border:none; none;”的已知錯誤,風格。要解決此問題,請使用以下...
    程式設計 發佈於2025-04-20
  • 為什麼不````''{margin:0; }`始終刪除CSS中的最高邊距?
    為什麼不````''{margin:0; }`始終刪除CSS中的最高邊距?
    在CSS 問題:不正確的代碼: 全球範圍將所有餘量重置為零,如提供的代碼所建議的,可能會導致意外的副作用。解決特定的保證金問題是更建議的。 例如,在提供的示例中,將以下代碼添加到CSS中,將解決餘量問題: body H1 { 保證金頂:-40px; } 此方法更精確,避免了由全局保證金重置...
    程式設計 發佈於2025-04-20

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

Copyright© 2022 湘ICP备2022001581号-3