HTML基礎P2 | JS基礎講解

什么是JS

JS是一個網頁的腳本語言,你可以理解為在HTML中寫類似于JAVA等高級編程語言的代碼,使得網頁可以實現一些包含邏輯處理的交互操作

簡單上手例子

接下來,給大家一個簡單的小例子來感受一下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JsDemo</title>
</head>
<body><script>alert("Hello JavaScript!")</script>
</body>
</html>

我們可以發現,網頁在加載時就彈出來了一個彈窗,這就是我們JS的作用

?引入方式

行內樣式

直接在一個標簽內給它寫一個js的屬性,如:

<input type="button" value="點我一下" onclick="alert('你點了我')">

內部樣式

例如上述給出來的例子,使用<script></script>標簽寫在內部

外部樣式

使用<script src=""></script>樣式標簽引入外部js,如:

<script src="hello.js"></script>

基礎知識

聲明變量

關鍵字解釋示例
var早期JS中聲明變量的關鍵字,作用域在該語句所在函數內var name = 'zhangsan';
letES6中新增聲明變量的關鍵字,作用域為該語句所在的代碼塊let name = 'zhangsan';
const聲明變量后,不能修改變量值const name = 'zhangsan';

?數據類型

數據類型描述
number數字,不區分整數和小數
string字符串,需要用單引號或者雙引號包裹起來
boolean布爾類型,true為真,false為假
undefined表示變量未初始化

語法格式

//創建函數

function 函數名(形參列表) {

? ? ? ? 函數體

? ? ? ? return 結果;

}

//調用函數

函數名(形參列表);

<script>function hello() {console.log("hello");}hello();
</script>

?提示

當然,JS中還包含了很多其它內容,但是本博客只是粗略地介紹了一下什么是JS,剩下的如對象啊,數組啊之類的其余內容在此不過多贅述

JQuery

什么是JQuery

由于原生JS在實踐過程中非常的冗余復雜,因此一種新的JS框架應運而生,即JQuery,它可以簡化我們對于JS的應用和代碼

如何使用JQuery

我們在使用JQuery前必須要先引入它,在引入它之前我們必須先下載一個JQuery的js文件,大家可以去它的官網:jQuery? 進行下載,下載完成后我們使用外部樣式方式引入這個js

    <script src="jquery-3.7.1.min.js"></script>

注意:我們下載的是minified的

語法格式

$(selector).action()

  • $()是一個函數,它是JQuery提供的一個全局函數,用于選擇和操作HTML元素
  • Selector選擇器,用來“查詢”和“查找”HTML元素
  • action操作,執行對元素的操作

JQuery選擇器

$("*")選取所有元素
$(this)選取當前HTML元素
$("p")所有<p>元素
$("p:first")選取第一個p元素
$("p:last")最后一個<p>元素
$(".box")所有class = "box"元素
$("#box")id = "box"的元素
$(".intro, .demo")所有class = "box"且 class = "demo"的元素
$("p .intro")class = "intro"的<p>元素
$("ul li:first")選取第一個<ul>元素的第一個<li>元素
$(":input")所有<input>元素
$(":text")所有type = "text"的<input>元素
$(":checkbox")所有type = "checkbox"的<input>元素

JQuery事件

  1. 事件源:哪個元素觸發的
  2. 事件類型:是點擊,選中,還是修改?
  3. 事件處理程序:進一步如何處理,往往是一個回調函數

點擊事件代碼

$("p").click(function() {//動作發生后執行的代碼
})

常見事件有

事件代碼
文檔就緒事件(完成加載)$(document).ready(function)
點擊事件$(selector).click(function)
雙擊事件$(selector).dbclick(function)
元素的值發生改變$(selector).change(function)
鼠標懸停事件$(selector).mouseover(function)

操作元素

JQuery方法說明
text()設置或返回所選元素的文本內容
html()設置或返回所選元素的內容(包括HTML標簽)
val()設置或返回表單字段的值

注意:text()用于行內元素,val()用于表單元素,示例如下所示:

獲取元素內容
<body><div id="test"><span>你好</span></div><input type="text" value="hello"><script>$(document).ready(function () {var html = $("#test").html();console.log("html內容為:" + html);var text = $("#test").text();console.log(text);var text = $("input").val();console.log(text);})</script>
</body>
設置元素內容
<body><div id="test"></div><div id="test2"></div><input type="text" value=""><script>$(document).ready(function () {$("#test").html('<h1>我是h1</h1>');$("#test2").text('<h1>設置text</h1>');$("#text").val("設置內容");})</script>
</body>

我們可以發現,html()中可以正常解析為h1,而text中只是單純把所有內容渲染在網頁上

添加元素
方法說明
append()在被選元素的結尾插入內容
prepend()在被選元素的開頭插入內容
after()在被選元素之后插入內容
before()在被選元素之前插入內容
刪除元素
方法說明
remover()刪除被選元素(及其子元素)
empty()刪除被選元素的子元素

?綜合案例

接下來我將會提供兩個小案例,大家可以自己嘗試一下~~

猜數字

如圖所示,我們要實現,用戶每一次加載界面之后會有一個1-100的隨機數,用戶在輸入框中輸入數字后,點擊猜按鈕,瀏覽器會反饋猜大了,猜小了或者猜對了,次數也會對應+1,點擊重開就會重置

代碼
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>猜數字</title><script src="jquery-3.7.1.min.js"></script>
</head>
<body><button id="reset">重新開始一局游戲</button><br><span>請輸入要猜的數字:</span><input type="text" id="guessNum"><button id="guess">猜</button><br><span>已經猜的次數:</span><span id="count">0</span><br><span>結果:</span><span id="result"></span><script>$(function() {var count = 0;var num = Math.floor(Math.random() * 100 + 1);   //隨機1-100的數字console.log(num);$("#guess").click(function() {count++;$("#count").text(count);let guessNum = $("#guessNum").val();if(guessNum < num) {$("#result").text("猜小了");$("#result").css("color", "red");} else if(guessNum > num) {$("#result").text("猜大了");$("#result").css("color", "red");} else {$("#result").text("猜對了");$("#result").css("color", "green");}})$("#reset").click(function() {num = Math.floor(Math.random() * 100 + 1);$("#guessNum").val("");$("#count").text(0);$("#result").text("");})})</script>
</body>
</html>

表白墻

這個案例要實現,用戶在三個輸入框中分別輸入內容并提交后,下方會顯示形如A 對 B 說:xxx的 內容

代碼
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>表白墻</title><script src="jquery-3.7.1.min.js"></script><style>* {margin: 0;padding: 0;}.container {width: 400px;margin: 0 auto;}.title {text-align: center;margin-top: 30px;}.note {color: grey;text-align: center;font-size: 14px;padding: 10px 0;}.row {height: 40px;display: flex;justify-content: center;align-items: center;padding: 1px 0;}.row span {width: 100px;line-height: 40px;}.edit {width: 200px;height: 30px;}.submit {width: 304px;height: 40px;color: white;background-color: palevioletred;border: none;}</style>
</head>
<body><div class="container"><div class="title"><h1>表白墻</h1></div><div class="note"><span>輸入后點擊提交,會將信息顯示在表格中</span></div><div class="row"><span>誰:</span><input type="text" class="edit" id="from"></div><div class="row"><span>對誰:</span><input type="text" class="edit" id="to"></div><div class="row"><span>說什么:</span><input type="text" class="edit" id="say"></div><div class="row"><button class="submit" id="submit">提交</button></div></div><script>//點擊事件獲取數據$("#submit").click(function() {var from = $("#from").val();var to = $("#to").val();var say = $("#say").val();//構造html元素if(from != "" || to != "" || say != "") {var html = '<div class ="row">' + from + " 對 " + to + " 說:" + say + '</div>';}//將元素添加進去并置空$(".container").append(html);$("#from").val("");$("#to").val("");$("#say").val("");})</script>
</body>
</html>
?

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

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

相關文章

QT筆記(2)——vscode + CMAKE + qtcreate的操作方式

1.vscode 下載cmake&#xff0c;clangd&#xff0c;qtConfigure&#xff0c;cmake tool的相關插件支持 2. qtConfigure插件配置 根據自己下載的qt目錄下尋找如圖的相關工具 3. qt環境變量配置 在系統變量的path中添加qt編譯需要的環境變量。 4.下載Cmake支持 CMake下…

sed編程入門

一.sed是啥sed&#xff08;流編輯器&#xff0c;Stream Editor&#xff09;是 Unix/Linux 系統中強大的文本處理工具&#xff0c;常用于對文本進行替換、刪除、插入、追加等操作。它逐行處理輸入文本&#xff0c;并根據提供的腳本命令修改文本&#xff0c;最后輸出結果。二.基本…

知識速查大全:python面向對象基礎

目錄 一、面向對象的基本概念 二、類和對象 1.類 2.對象 三、屬性&#xff08;數據&#xff09;和方法 1.數據 1.1.實例數據 1.2.類數據 2.方法 2.1.實例方法 2.2.類方法 3.數據和方法的綜合使用 四、面向對象三大特性 1.封裝 2.繼承 2.1.單繼承 2.2.多繼承 2.3.混合類 2.4.方法…

Linux系統編程Day1-- 免費云服務器獲取以及登錄操作

一、 學生黨如何“白嫖”或免費使用云服務器&#xff1f; 作為學生黨&#xff0c;資金有限的情況下確實不容易長期負擔服務器費用。但好消息是&#xff0c;有多種方式可以“白嫖”或低成本使用云服務器&#xff0c;尤其是針對學生身份、學習用途和開發者計劃。 1、使用各大云平…

15.11 單卡訓練770M參數模型!DeepSpeed ZeRO-3實戰:RTX 4090顯存直降6.8GB

單卡訓練770M參數模型!DeepSpeed ZeRO-3實戰:RTX 4090顯存直降6.8GB 實戰 DeepSpeed ZeRO-2 和 ZeRO-3 單機單卡訓練 為什么需要單機單卡訓練場景? 雖然 DeepSpeed 的 ZeRO 技術主要面向分布式訓練場景,但單機單卡訓練仍然具有重要實踐價值: 開發調試:在資源有限情況下…

HTTPS基本工作過程:基本加密過程

HTTPS基本工作過程&#xff1a;HTTPS只是HTTP的基礎上引入加密機制1.引入對稱加密首先&#xff0c;什么是對稱加密和非對稱加密&#xff1f;對稱加密&#xff1a;使用同一把密鑰加密解密非對稱加密&#xff1a;有兩把密鑰&#xff0c;為公鑰&#xff08;公開的&#xff09;和私…

ES 文件瀏覽器:多功能文件管理與傳輸利器

ES 文件瀏覽器是一款功能強大的文件管理器軟件&#xff0c;支持多種文件傳輸協議&#xff0c;能夠方便地管理手機、平板電腦和電腦中的文件。它不僅提供了豐富的文件管理功能&#xff0c;還支持多種設備之間的文件傳輸&#xff0c;滿足用戶在不同場景下的需求。 核心功能 1. 文…

github-idea新建文件就要彈窗提醒-如何關閉-2025.7.30

打開設置 進入 File&#xff08;文件&#xff09; > Settings&#xff08;設置&#xff09;。 導航到版本控制設置&#xff1a; 在左側導航欄中&#xff0c;展開 Version Control&#xff08;版本控制&#xff09;。 選擇 Confirmation&#xff08;確認&#xff09;。修改文…

滾珠導軌在電子制造中的流暢性優勢

在電子元件微米級精度要求的搬運與裝配環節&#xff0c;傳統導軌易因摩擦、磨損導致定位偏差或設備抖動。而滾珠導軌憑借滾動摩擦設計&#xff0c;將滑動阻力降低80%以上&#xff0c;成為高精度電子制造設備的首選傳動部件。微米級精度&#xff1a;在貼片機中&#xff0c;滾珠導…

數據結構——單鏈表1

1. 單鏈表1.1 概念與結構概念&#xff1a;鏈表是一種物理存儲結構上非連續、非順序的存儲結構&#xff0c;數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。1.1.1 結點與順序表不同的是&#xff0c;鏈表里的每節都是獨立申請下來的空間&#xff0c;我們稱之為“節點/結點…

STM32CubeMX + HAL庫:基于DHT11溫濕度監測實現

1. 概述1.1 實驗目的本實驗旨在利用 DHT11 溫濕度傳感器&#xff0c;每隔 5 秒采集一次環境的溫度與濕度數據&#xff0c;并通過串口將數據循環打印輸出。所使用的 DHT11 模塊硬件結構簡單&#xff0c;包含三個接口引腳&#xff1a;電源正極&#xff08;VCC&#xff09;、電源負…

常見排序的特性總結

目錄 1.排序的穩定性 2.直接插入排序的特性總結 3.希爾排序的特性總結 4.直接選擇排序的特性總結 5.堆排序的特性總結 6.冒泡排序的特性總結 7.快速排序的特性總結 8.歸并排序的特性總結 9.計數排序的特性總結 10.總結 1.排序的穩定性 排序的穩定性是說 相同大小的元…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-49,(知識點:OSI模型,物理層、數據鏈路層、網絡層)

目錄 1、題目 2、解答 OSI 七層模型的分層及功能&#xff08;從下到上&#xff09; 1. 物理層&#xff08;Physical Layer&#xff09; &#xff1a;網卡的物理接口、網線、光纖、集線器 2. 數據鏈路層&#xff08;Data Link Layer&#xff09;&#xff1a;交換機&#xf…

R 環境安裝指南

R 環境安裝指南 引言 R 是一種針對統計計算和圖形表示的編程語言和軟件環境。它廣泛應用于數據分析和統計建模領域。本指南旨在為用戶提供一個清晰、詳細的 R 環境安裝步驟,確保用戶能夠順利地開始使用 R 進行數據分析。 安裝前的準備 在開始安裝 R 之前,請確保您的計算機…

Cesium entity跟隨第一人稱視角

1.跟隨視角let firstView:any; const firstPerspective (entity: any) > {firstView () > {let curTime window.viewer.clock.currentTime;const pos entity.position.getValue(curTime);const orientation entity.orientation.getValue(curTime);if (pos &&…

傳輸層協議UDP與TCP

目錄 一. UDP 1.1 UDP協議段格式 1.2 UDP傳輸的特點 1.3 面向數據報 1.4 UDP緩沖區 1.5 報文的理解 二. TCP 2.1 TCP協議段格式 2.2 確認應答機制&#xff08;ACK&#xff09; 2.3 超時重傳機制 2.4 連接管理機制 為什么要三次握手&#xff1f; 三次&#xff1f;四…

SringBoot入門

文章目錄SpringBoot入門一、關于&#xff1a;約定大于配置二、創建SpringBoot項目---起步案例創建SpringBoot項目案例創建項目方式2&#xff1a;通過aliyun網站創建創建項目方式3---基于官方地址創建三、配置項目項目結構自定義配置四、SpringBoot原理&#xff08;重點&#xf…

ansible 版本升級

1. 服務器上查看對應ansible 可安裝的版本 yum info ansible 對比官網,服務器對應ansible 版本比較地址,不利于了解新版本的屬性。 2. 升級比較新的ansible 版本,安裝epel-release wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm rpm -iv…

企業微信API接口發消息實戰:從0到1的技術突破之旅

摘要&#xff1a;本文詳細介紹了通過企業微信官方API接口實現消息發送功能的完整實戰流程。首先闡述了企業微信API在數字化辦公中的重要性&#xff0c;重點講解了消息發送接口的應用場景。實戰部分分為前期準備、開發環境搭建和具體實現三個環節&#xff0c;包括創建企業微信應…

Linux的小程序——進度條

為了寫出這個小程序我們先來了解幾個知識點(一)回車和換行先以寫作文為例子了解一下&#xff0c;當在一行中寫了一半&#xff0c;由此處位置往下一行的操作叫做換行&#xff0c;回到該行的開頭位置為回車。而在c語言中\n幫我們完成了換行和回車兩個動作&#xff0c;那單純回車是…