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

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.dtcms.com/a/307018.html

相关文章:

  • 《汇编语言:基于X86处理器》第10章 复习题和练习
  • HTTPS基本工作过程:基本加密过程
  • 谈谈毕业工作一年后的变化
  • c#_文件的读写 IO
  • 关系型数据库架构最优选择:基于落霞归雁思维框架的分析
  • 7月30日作业
  • Spring Boot 数据源配置中为什么可以不用写 driver-class-name
  • 第六章第一节 TIM 定时中断
  • vue2中的过滤器filter
  • 1+1>2!特征融合如何让目标检测更懂 “场景”?
  • 深入理解数据库事务:从概念到实践
  • 防止飞书重复回调通知分布式锁
  • 白话容器基础(一):进程
  • Mybatis分页查询当前页数据条数大于实际返回的数据条数
  • 拥抱智慧物流时代:数字孪生技术的应用与前景
  • Matplotlib(四)- 图表样式美化
  • Linux日志管理和时钟同步配置指南
  • OneCode3.0 框架深入研究与应用扩展
  • html页面跳转或者a标签锚点跳转,解决页面滚动问题3个(1.从底部开始滚动,2.滚动不到指定锚点位置,3.页面展示不在最上面)
  • MySQL图解索引篇(2)
  • 斯皮尔曼spearman相关系数
  • 25年新算法!基于猛禽的优化算法(BPBO):一种元启发式优化算法,附完整免费MATLAB代码
  • Java反射-动态代理
  • cmake_parse_arguments()构建清晰灵活的 CMake 函数接口
  • 智汇AI,应用领航 | 华宇万象问数入选2025全景赋能典型案例
  • 36、spark-measure 源码修改用于数据质量监控
  • Linux零基础Shell教学全集(可用于日常查询语句,目录清晰,内容详细)(自学尚硅谷B站shell课程后的万字学习笔记,附课程链接)
  • 「Spring Boot + MyBatis-Plus + MySQL 一主两从」读写分离实战教程
  • Linux 中,命令查看系统版本和内核信息
  • Linux 系统原理深度剖析与技术实践:从内核架构到前沿应用