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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;那单纯回车是…