当前位置: 首页 > web >正文

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.xdnf.cn/news/16781.html

相关文章:

  • JSON.parse解析大整数踩坑
  • 重生之我在10天内卷赢C++ - DAY 1
  • 安全和AI方向的学习路线
  • Tdesign-React 模板面包屑如何放到 Header头部
  • 白话容器基础(一):进程
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(一级)
  • SSRF漏洞基础
  • Akamai CloudTest before 60 2025.06.02 XXE注入导致文件包含漏洞(CVE-2025-49493)
  • Solon v3.4.2(Java 应用开发生态基座)
  • T113-i Linux系统完整构建指南:从SDK开箱到内核镜像量产烧录全流程
  • 【力扣热题100】哈希——最长连续序列
  • MSVC编译KDChart过程
  • 实现了加载 正向 碰撞 雅可比 仿真
  • [SKE]UVM环境下OpenSSL加密算法参考模型设计
  • BOSMA博冠8K广播级讯道摄像机DC0300 EFP产品画册(下)
  • 利用SQL文件上传注入植入WebShell
  • 【从零实践Onvif】01、Onvif详细介绍(从Onvif客户端开发的角度认识Onvif、Web Servies、WSDL、SOAP)
  • SpringCloud -- MQ高级
  • 数学建模——01规划/整数规划
  • Vue3 Composition API
  • Oracle迁移PostgreSQL隐式类型转换配置指南
  • RHCA - CL260 | Day03:配置 RHCS 集群
  • PyTorch 生态四件套:从图片、视频到文本、语音的“开箱即用”实践笔记
  • Git LFS 安装和使用
  • 动态规划Day5学习心得
  • 原生C++实现信号与槽机制:原理详解
  • windows环境下MySQL 8.0 修改或重置密码
  • SpringBoot 实现 RAS+AES 自动接口解密
  • 图像处理控件Aspose.Imaging教程:使用 C# 编程将 CMX 转换为 PNG
  • 基于 Rust 和土木工程、设备故障诊断、混凝土养护、GPS追踪、供应链物流跟踪系统、地下水监测等领域的实例