HTML基础P2 | JS基础讲解

发布于:2025-07-31 ⋅ 阅读:(19) ⋅ 点赞:(0)

什么是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';
let ES6中新增声明变量的关键字,作用域为该语句所在的代码块 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>
 

网站公告

今日签到

点亮在社区的每一天
去签到