【JavaWeb】JavaScript

🔥 本文由 程序喵正在路上 原创,CSDN首发!
💖 系列专栏:JavaWeb开发
🌠 首发时间:2024年2月1日
🦋 欢迎关注🖱点赞👍收藏🌟留言🐾

js介绍

  • JavaScript(简称:JS) 是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互
  • JavaScript 和 Java 是完全不同的语言,不论是概念还是设计,但是基础语法类似
  • JavaScript 在 1995 年由 Brendan Eich 发明,并于 1997 年成为 ECMA 标准
  • ECMAScript6 (ES6) 是最主流的 JavaScript 版本(发布于 2015 年)
  • ECMA: ECMA国际(前身为欧洲计算机制造商协会),制定了标准化的脚本程序设计语言 ECMAScript,这种语言得到广泛应用。而 JavaScript 是遵守 ECMAScript 的标准的

js引入方式

JS 有两种引入方式

  • 内部脚本:将 JS 代码定义在 HTML 页面中

    • JavaScript 代码必须位于<script></script>标签之间
    • 在HTML文档中,可以在任意地方,放置任意数量的<script>
    • 一般会把脚本置于<body>元素的底部,可改善显示速度
  • 外部脚本:将 JS 代码定义在外部 JS 文件中,然后引入到 HTML 页面中

    • 外部 JS 文件中,只包含 JS 代码,不包含<script>标签
    • <script>标签不能自闭合,自闭合就是 <script src="js/demo.js"/> 这种形式,末尾存在 /

代码演示

01. JS-引入方式.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-引入方式</title>
    <!-- <script>
        alert("Hello JS");//定义弹出框
    </script> -->
</head>
<body>
    
    <!-- 内部脚本 -->
    <!-- <script>
        alert("Hello JS");//定义弹出框
    </script> -->
    
    <!-- 外部脚本 -->
    <script src="js/demo.js"></script>
</body>
</html>

<!-- <script>
    alert("Hello JS");//定义弹出框
</script> -->

外部脚本需要在外部定义一个JS文件,内容如下

在这里插入图片描述

效果图

在这里插入图片描述

js基础语法

书写语法

  • 区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的

  • 每行结尾的分号可有可无

  • 注释:

    • 单行注释:// 注释内容
    • 多行注释:/* 注释内容 */
  • 大括号表示代码块

    //判断
    if(count == 3){
        alert(count);
    }
    

JS 中的三种输出语句

  • 使用 window.alert() 写入警告框
  • 使用 document.write() 写入 HTML 输出
  • 使用 console.log() 写入浏览器控制台

代码演示

02. JS-基础语法-输出语句.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-基本语法</title>
</head>
<body>
   
    
   <script>
    window.alert("Hello JS"); //弹出框

    document.write("Hello JS"); //写入HTML页面

    console.log("Hello JS"); //浏览器控制台
   </script>
</body>
</html>

效果图

  • 弹出框

    在这里插入图片描述

  • 写入 HTML 页面

    在这里插入图片描述

  • 写入浏览器控制台

    在这里插入图片描述

变量

  • JavaScript 中用 var 关键字(variable 的缩写)来声明变量
  • JavaScript 是一门弱类型语言,变量可以存放不同类型的值
  • 变量名需要遵循如下规则:
    • 组成字符可以是任何字母、数字、下划线(_)或美元符号($)
    • 数字不能开头
    • 建议使用驼峰命名

注意事项

  • ECMAScript 6 新增了 let 关键字来定义变量。它的用法类似于 var,但是所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明
  • ECMAScript 6 新增了 const 关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变

代码演示

03. JS-基础语法-变量.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-基础语法</title>
</head>

<body>
    <script>
        //定义变量
        // var a = 0;
        // a = "A";

        // alert(a);

        // var 定义的是一个全局变量, 还可以重复声明
        // {
        //     var a = 0;
        //     var a = "A";
        // }
        // alert(a);


        // let 定义的是一个局部变量, 不可以重复声明
        // {
        //     let a = 0;
        //     a = "A";

        //     alert(a);
        // }

        //const 定义的是一个常量
        const pi = 3.14;
        //pi = 3.15;

        alert(pi);

    </script>
</body>

</html>

数据类型、运算符、流程控制语句

数据类型

JavaScript中分为:原始类型和引用类型

原始类型

  • number:数字(整数、小数、NaN (Not a Number))
  • string:字符串,单双引皆可
  • boolean:布尔,true 或 false
  • null:对象为空
  • undefined:当声明的变量未初始化时,该变量的默认值是 undefined

注意:使用 typeof 运算符可以获取变量的数据类型

运算符

  • 算术运算符:+ , - , * , / , % , ++ , –
  • 赋值运算符:= , += , -= , *= , /= , %=
  • 比较运算符:> , < , >= , <= , != , == , ===
  • 逻辑运算符:&& , || , !
  • 三元运算符:条件表达式 ? true_value: false_value

== 与 === 的区别

== 会进行类型转换,=== 不会进行类型转换

类型转换

  • 字符串类型转为数字:
    • 将字符串字面值转为数字。 如果字面值不是数字,则转为NaN
  • 其他类型转为boolean:
    • Number:0 和 NaN 为 false,其他均转为 true
    • String:空字符串为 false,其他均转为 true
    • Null 和 undefined :均转为false

流程控制语句

  • if…else if …else…
  • switch
  • for
  • while
  • do … while

代码演示

04. JS-基础语法-数据类型.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-数据类型</title>
</head>
<body>

</body>
<script>

    //原始数据类型
    alert(typeof 3); //number
    alert(typeof 3.14);//number

    alert(typeof "A"); //string
    alert(typeof 'Hello');//string

    alert(typeof true);//boolean
    alert(typeof false);//boolean

    alert(typeof null);//object

    var a ;
    alert(typeof a);//undefined?
        
</script>
</html>

05. JS-基础语法-运算符.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-运算符</title>
</head>
<body>
    
</body>
<script>
    // var age = 20;
    // var _age = "20";
    // var $age = 20;
    
    // alert(age == _age); //true
    // alert(age === _age); //false
    // alert(age === $age); //true

    // 类型转换 - 其他类型转为数字
    // alert(parseInt("12")); //12
    // alert(parseInt("1222A45")); //1222
    // alert(parseInt("A45")); //NaN

    // if(0){
    //     alert("If");
    // }

    // 类型转换 - 其他类型转为boolean
    // if(0){ //false
    //     alert("0 转换为false");
    // }

    // if(NaN){ //false
    //     alert("NaN 转换为false");
    // }

    // if(-1){ //true
    //     alert("除0和NaN其他数字都转为 true");
    // }

    // if(""){ //false
    //     alert("空字符串为 false, 其他都是true");
    // }
        
    // if(null){ //false
    //     alert("null 转化为false");
    // }

    // if(undefined){ //false
    //     alert("undefined 转化为false");
    // }

    /*
        false:
            0    NaN
            ""
            null
            undefined
    */
</script>
</html>

js函数

  • 介绍:函数(方法)是被设计为执行特定任务的代码块

  • 定义:JavaScript 函数通过 function 关键字进行定义,语法为:

    function functionName(参数1,参数2..){
    	//要执行的代码
    }
    
  • 示例

    function add(a , b){
        return a + b;
    }
    
  • 注意:

    • 形式参数不需要类型,因为 JavaScript 是弱类型语言
    • 返回值也不需要定义类型,可以在函数内部直接使用 return 返回即可
    • 调用:函数名称(实际参数列表)

函数的另一种定义方式

  • 语法
    var functionName = function (参数1,参数2..){
       //要执行的代码
    }
    
  • 示例
    var add = function(a , b){
        return a + b;
    }
    

注意:JS中,函数调用可以传递任意个数的参数。

代码演示

06. JS-函数.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-函数</title>
</head>

<body>

</body>
<script>

    //定义函数方式1
    // function add(a,b){
    //    return  a + b;
    // }

    //定义函数方式2
    var add = function (a, b) {
        return a + b;
    }

    //函数调用
    var result = add(10, 20);
    alert(result);

</script>

</html>

js对象

Array

  • JavaScript 中 Array 对象用于定义数组

  • 定义:

    var 变量名 = new Array(元素列表); //方式一
    
    var 变量名 = [ 元素列表 ]; 		//方式二
    
  • 访问:

    arr[ 索引 ] =; 
    
  • 注意:JavaScript 中的数组相当于 Java 中集合,数组的长度是可变的,而 JavaScript 是弱类型,所以可以存储任意的类型的数据。

  • 属性
    在这里插入图片描述

  • 方法
    在这里插入图片描述

  • 箭头函数 (ES6):是用来简化函数定义语法的。具体形式为: (…) => { … } ,如果需要给箭头函数起名字: var xxx = (…) => { … }可以用来简化 forEach() 遍历数组

  • 代码演示

    07. JS-对象-Array.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>JS-对象-Array</title>
    </head>
    
    <body>
    
    </body>
    <script>
        //定义数组
        // var arr = new Array(1,2,3,4);
        // var arr = [1,2,3,4];
    
        // console.log(arr[0]);
        // console.log(arr[1]);
    
        //特点: 长度可变 类型可变
        // var arr = [1,2,3,4];
        // arr[10] = 50;
    
        // console.log(arr[10]);
        // console.log(arr[9]);
        // console.log(arr[8]);
    
        // arr[9] = "A";
        // arr[8] = true;
    
        // console.log(arr);
    
        var arr = [1, 2, 3, 4];
        arr[10] = 50;
        // for (let i = 0; i < arr.length; i++) {
        //     console.log(arr[i]);
        // }
    
        // console.log("==================");
    
        //forEach: 遍历数组中有值的元素
        // arr.forEach(function(e){
        //     console.log(e);
        // })
    
        // //ES6 箭头函数: (...) => {...} -- 简化函数定义
        // arr.forEach((e) => {
        //     console.log(e);
        // }) 
    
        //push: 添加元素到数组末尾
        // arr.push(7,8,9);
        // console.log(arr);
    
        //splice: 删除元素
        arr.splice(2, 2);
        console.log(arr);
    
    </script>
    
    </html>
    

String

  • String字符串对象创建方式有两种:

    var 变量名 = new String("…") ; //方式一
    
    var 变量名 = "…" ; 			  //方式二
    
  • 属性
    在这里插入图片描述

  • 方法
    在这里插入图片描述

  • 代码演示

    08. JS-对象-String.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>JS-对象-String</title>
    </head>
    
    <body>
    
    </body>
    <script>
        //创建字符串对象
        //var str = new String("Hello String");
        var str = "  Hello String    ";
    
        console.log(str);
    
        //length
        console.log(str.length);
    
        //charAt
        console.log(str.charAt(4));
    
        //indexOf
        console.log(str.indexOf("lo"));
    
        //trim
        var s = str.trim();
        console.log(s);
    
        //substring(start,end) --- 开始索引, 结束索引 (含头不含尾)
        console.log(s.substring(0, 5));
    
    </script>
    
    </html>
    
  • 效果图

    在这里插入图片描述

JSON

在学习 JSON 之前,我们需要了解一下 JavaScript 的自定义对象

JavaScript自定义对象

  • 定义格式:
    在这里插入图片描述
  • 调用格式:
    在这里插入图片描述

JSON

  • 概念:JavaScript Object Notation,JavaScript对象标记法
  • JSON 是通过 JavaScript 对象标记法书写的文本
  • 由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输

JSON基础语法

  • 定义:
    在这里插入图片描述

  • value的数据类型:
    在这里插入图片描述

  • 示例
    在这里插入图片描述

  • 将JSON字符串转为JS对象
    在这里插入图片描述

  • 将JS对象转为JSON字符串
    在这里插入图片描述

代码演示

09. JS-对象-JSON.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-JSON</title>
</head>

<body>

</body>
<script>
    //定义json
    var jsonstr = '{"name":"Tom", "age":18, "addr":["北京","上海","西安"]}';

    //将json字符串转为js对象
    var obj = JSON.parse(jsonstr);
    alert(obj.name);

    //将js对象-转为json字符串
    alert(JSON.stringify(obj));


</script>

</html>

效果图

在这里插入图片描述

在这里插入图片描述

BOM

在这里插入图片描述

  • 概念:Browser Object Model,浏览器对象模型,允许JavaScript与浏览器对话,JavaScript 将浏览器的各个组成部分封装为对象
  • 组成:
    • Window:浏览器窗口对象
    • Navigator:浏览器对象
    • Screen:屏幕对象
    • History:历史记录对象
    • Location:地址栏对象

对于 Java 开发人员来说,我们只需要了解 Window 和 Location 两个对象即可

Window

  • 介绍:浏览器窗口对象
  • 获取:直接使用window,其中 window. 可以省略
  • 属性
    • history:对 History 对象的只读引用。请参阅 History 对象
    • location:用于窗口或框架的 Location 对象。请参阅 Location 对象
    • navigator:对 Navigator 对象的只读引用。请参阅 Navigator 对象
  • 方法
    • alert():显示带有一段消息和一个确认按钮的警告框
    • confirm():显示带有一段消息以及确认按钮和取消按钮的对话框
    • setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式
    • setTimeout():在指定的毫秒数后调用函数或计算表达式

Location

  • 介绍:地址栏对象

  • 获取:使用 window.location 获取,其中 window. 可以省略

  • 属性:

    • href:设置或返回完整的URL
  • 设置属性的方法:location.href = "https://www.itcast.cn";

代码演示

10. JS-对象-BOM.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-BOM</title>
</head>

<body>

</body>
<script>
    // alert("Hello BOM Window");

    // 方法
    // confirm - 对话框,有返回值 -- 确认返回值: true , 取消返回值: false
    // var flag = confirm("您确认删除该记录吗?");

    //定时器 - setInterval -- 周期性的执行某一个函数
    // var i = 0;
    // setInterval(function () {
    //     i++;
    //     console.log("定时器执行了" + i + "次");
    // }, 2000);

    //定时器 - setTimeout -- 延迟指定时间执行一次
    // setTimeout(function () {
    //     alert("JS");
    // }, 3000);

    //location
    alert(location.href);
    location.href = "https://www.baidu.com";

</script>

</html>

效果图

  • 对话框

    在这里插入图片描述

  • 定时器

    在这里插入图片描述

  • 获取当前 href

    在这里插入图片描述

  • 将 href 设置完,会自动跳转到对应的网页:

    在这里插入图片描述

DOM

  • 概念:Document Object Model ,文档对象模型
  • DOM 可以将标记语言的各个组成部分封装为对应的对象:
    • Document:整个文档对象
    • Element:元素对象,每个标签都可以封装为一个元素对象
    • Attribute:属性对象,标签里面的属性可以封装为属性对象
    • Text:文本对象
    • Comment:注释对象
  • JavaScript 通过DOM,就能够对 HTML(超文本标记语言)进行操作:
    • 改变 HTML 元素的内容
    • 改变 HTML 元素的样式(CSS)
    • 对 HTML DOM 事件作出反应
    • 添加和删除 HTML 元素

这里,我们准备了一个简单的程序,可以更加直观地感受 DOM 的作用:

11. JS-对象-DOM-演示.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM演示</title>
</head>

<body>
    <div style="font-size: 30px; text-align: center;" id="tb1">课程表</div>
    <table width="800px" border="1" cellspacing="0" align="center">
        <tr>
            <th>学号</th>
            <th>姓名</th>
            <th>分数</th>
            <th>评语</th>
        </tr>
        <tr align="center" class="data">
            <td>001</td>
            <td>张三</td>
            <td>90</td>
            <td>很优秀</td>
        </tr>
        <tr align="center" class="data">
            <td>002</td>
            <td>李四</td>
            <td>92</td>
            <td>优秀</td>
        </tr>
        <tr align="center" class="data">
            <td>003</td>
            <td>王五</td>
            <td>83</td>
            <td>很努力,不错</td>
        </tr>
        <tr align="center" class="data">
            <td>004</td>
            <td>赵六</td>
            <td>98</td>
            <td>666</td>
        </tr>
    </table>
    <br>
    <div style="text-align: center;">
        <input id="b1" type="button" value="改变标题内容" onclick="fn1()">
        <input id="b2" type="button" value="改变标题颜色" onclick="fn2()">
        <input id="b3" type="button" value="删除最后一个" onclick="fn3()">
    </div>
</body>

<script>
    function fn1() {
        document.getElementById('tb1').innerHTML = "学员成绩表";
    }

    function fn2() {
        document.getElementById('tb1').style = "font-size: 30px; text-align: center; color: red;"
    }

    function fn3() {
        var trs = document.getElementsByClassName('data');
        trs[trs.length - 1].remove();
    }
</script>

</html>

可以自己运行并点击相应的按钮感受一下

在这里插入图片描述

在这里插入图片描述

DOM 的组成

DOM是 W3C(万维网联盟)的标准,定义了访问 HTML 和 XML 文档的标准,分为3个不同的部分:

  • Core DOM → \rightarrow 所有文档类型的标准模型
    • Document:整个文档对象
    • Element:元素对象
    • Attribute:属性对象
    • Text:文本对象
    • Comment:注释对象
  • XML DOM → \rightarrow XML 文档的标准模型
  • HTML DOM → \rightarrow HTML 文档的标准模型

通过 DOM 获取元素对象

  • HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的
  • Document对象中提供了以下获取Element元素对象的函数:
    • 根据id属性值获取,返回单个Element对象

      var h1 = document.getElementById('h1');
      
    • 根据标签名称获取,返回Element对象数组

      var divs = document.getElementsByTagName('div');
      
    • 根据name属性值获取,返回Element对象数组

      var hobbys = document.getElementsByName('hobby');
      
    • 根据class属性值获取,返回Element对象数组

      var clss = document.getElementsByClassName('cls');
      

获取元素对象

12. JS-对象-DOM-获取元素.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM</title>
</head>

<body>
    <img id="h1" src="img/off.gif"> <br><br>

    <div class="cls">学习?</div> <br>
    <div class="cls">启动!!!</div> <br>

    <input type="checkbox" name="hobby"> 音乐
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 电影
</body>

<script>
    //1. 获取Element元素
    //1.1 获取元素-根据ID获取
    // var img = document.getElementById('h1');
    // alert(img);

    //1.2 获取元素-根据标签获取 - div
    // var divs = document.getElementsByTagName('div');
    // for (let i = 0; i < divs.length; i++) {
    //     alert(divs[i]);
    // }

    //1.3 获取元素-根据name属性获取
    // var ins = document.getElementsByName('hobby');
    // for (let i = 0; i < ins.length; i++) {
    //     alert(ins[i]);
    // }

    //1.4 获取元素-根据class属性获取
    // var divs = document.getElementsByClassName('cls');
    // for (let i = 0; i < divs.length; i++) {
    //     alert(divs[i]);
    // }

    //2. 查询参考手册, 属性、方法
    var divs = document.getElementsByClassName('cls');
    var div1 = divs[0];

    div1.innerHTML = "读书破万卷";

</script>

</html>

效果图如下:

在这里插入图片描述

DOM 案例

通过DOM操作,完成如下效果实现

  • 点亮灯泡
  • 将所有的div标签的标签体内容后面加上:very good
  • 使所有的复选框呈现被选中的状态

完整代码如下:

13. JS-对象-DOM-案例.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-对象-DOM-案例</title>
</head>

<body>
    <img id="h1" src="img/off.gif"> <br><br>

    <div class="cls">学习?</div> <br>
    <div class="cls">启动!!!</div> <br>

    <input type="checkbox" name="hobby"> 音乐
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 电影
</body>

<script>
    //1. 点亮灯泡 : src 属性值
    var img = document.getElementById('h1');
    // 换成灯泡亮着的图片
    img.src = "img/on.gif";

    //2. 将所有div标签的内容后面加上: very good (红色字体) -- <font color='red'></font>
    var divs = document.getElementsByTagName('div');
    for (let i = 0; i < divs.length; i++) {
        const div = divs[i];
        div.innerHTML += "<font color='red'>very good</font>";
    }

    //3. 使所有的复选框呈现选中状态
    var ins = document.getElementsByName('hobby');
    for (let i = 0; i < ins.length; i++) {
        const check = ins[i];
        check.checked = true;//选中
    }

</script>

</html>

效果图如下:

在这里插入图片描述

js事件监听

事件监听

  • 事件:HTML事件是发生在HTML元素上的 “事情”,比如:
    • 按钮被点击
    • 鼠标移动到元素上
    • 按下键盘按键
  • 事件监听:JavaScript 可以在事件被侦测到时执行代码

事件绑定

方式一:通过 HTML 标签中的事件属性进行绑定

<input type="button" onclick="on()" value="按钮1">

<script>
    function on(){
        alert('我被点击了!');
    }
</script>

方式二:通过 DOM 元素属性绑定

<input type="button" id="btn" value="按钮2">

<script>
    document.getElementById('btn').onclick=function(){
        alert('我被点击了!');
    }
</script>

常见事件

在这里插入图片描述

案例

通过事件监听及 DOM 操作,完成如下效果实现:

  • 点击 “点亮” 按钮点亮灯泡,点击 “熄灭” 按钮熄灭灯泡
  • 输入框鼠标聚焦后,展示小写;鼠标离焦后,展示大写
  • 点击 “全选” 按钮使所有的复选框呈现被选中的状态,点击 “反选” 按钮使所有的复选框呈现取消勾选的状态

代码演示

14. JS-事件-案例.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS-事件-案例</title>
</head>

<body>

    <img id="light" src="img/off.gif"> <br>

    <input type="button" value="点亮" onclick="on()">
    <input type="button" value="熄灭" onclick="off()">

    <br> <br>

    <input type="text" id="name" value="ITCAST" onfocus="lower()" onblur="upper()">
    <br> <br>

    <input type="checkbox" name="hobby"> 音乐
    <input type="checkbox" name="hobby"> 旅游
    <input type="checkbox" name="hobby"> 电影
    <br>

    <input type="button" value="全选" onclick="checkAll()">
    <input type="button" value="反选" onclick="reverse()">

</body>

<script>

    //1. 点击 "点亮" 按钮, 点亮灯泡; 点击 "熄灭" 按钮, 熄灭灯泡; -- onclick
    function on() {
        //a. 获取img元素对象
        var img = document.getElementById("light");

        //b. 设置src属性
        img.src = "img/on.gif";
    }

    function off() {
        //a. 获取img元素对象
        var img = document.getElementById("light");

        //b. 设置src属性
        img.src = "img/off.gif";
    }


    //2. 输入框聚焦后, 展示小写; 输入框离焦后, 展示大写; -- onfocus , onblur
    function lower() {//小写
        //a. 获取输入框元素对象
        var input = document.getElementById("name");

        //b. 将值转为小写
        input.value = input.value.toLowerCase();
    }

    function upper() {//大写
        //a. 获取输入框元素对象
        var input = document.getElementById("name");

        //b. 将值转为大写
        input.value = input.value.toUpperCase();
    }


    //3. 点击 "全选" 按钮使所有的复选框呈现选中状态 ; 点击 "反选" 按钮使所有的复选框呈现取消勾选的状态 ; -- onclick
    function checkAll() {
        //a. 获取所有复选框元素对象
        var hobbys = document.getElementsByName("hobby");

        //b. 设置选中状态
        for (let i = 0; i < hobbys.length; i++) {
            const element = hobbys[i];
            element.checked = true;
        }

    }

    function reverse() {
        //a. 获取所有复选框元素对象
        var hobbys = document.getElementsByName("hobby");

        //b. 设置未选中状态
        for (let i = 0; i < hobbys.length; i++) {
            const element = hobbys[i];
            element.checked = false;
        }
    }


</script>

</html>

效果图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序喵正在路上

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值