JS day0820

news2024/9/22 5:34:49

ok了家人们今天学习Dom对象,和一个综合案例,一起去看看吧。

一.BOM对象

Browser Object Model 浏览器对象模型。

JavaScript 将浏览器的各 个组成部分封装为对象

  • Window :浏览器窗口对象。 对象表示浏览器中打开的窗口
  • Navigator:浏览器对象。对象包含有关浏览器的信息。
  • Screen:屏幕对象的信息  对象包含有关客户端显示屏幕的信息
  • History:历史记录对象。对象包含用户(在浏览器窗口中)访问过的 URL。
  • Location:地址栏对象  对象包含有关当前URL的信息。

直接使用 window调用window对象中的属性和函数,其中window. 可以省略

属性:获取其他 BOM对象

1.1 window对象

函数

alert()显示带有一段消息和一个确认按钮的警告框。

prompt()方法用于显示可提示用户进行输入的对话框。这个方法返 回用户输入的字符串。

window.confirm(提示信息) 确认框 返回true/false let 变量名 = window.setInterval(匿名函数,毫秒);该函数表示 JavaScript中的定时器,每隔多少毫秒就会执行一次匿名函数体中的 函数体。

window.clearInterval(定时器变量名): 取消定时器

let 变量名 = window.setTimeout(匿名函数,毫秒);该函数表示 JavaScript中的定时器,每隔多少毫秒就会执行一次匿名函数体中的 函数体,只会执行一次。


    <script>
        //alert()显示带有一段消息和一个确认按钮的警告框
        alert("你看你()呢,")

        //prompt()方法用于显示可提示用户进行输入的对话框。这个方法返回用户输入的字符串。
        let username=prompt("请输入您的账号给我盗一下");
        console.log(username);

        //let 变量名 = window.setInterval(匿名函数,毫秒);该函数表示
        //JavaScript中的定时器,每隔多少毫秒就会执行一次匿名函数体中的函数体
        let time=setInterval(function(){
            alert("你在看xx")

            //window.clearInterval(定时器变量名): 取消定时器
            window.clearInterval(time)// 取消定时器

        },1000);

        //let 变量名 = window.setTimeout(匿名函数,毫秒);该函数表示
        //JavaScript中的定时器,每隔多少毫秒就会执行一次匿名函数体中的
        //函数体,只会执行一次。
        let time02=setTimeout(function(){
            alert("还看!!!")
        },1000)

        
    </script>

定时切换图片:每隔1秒,灯泡切换一次状态。

<body>
    <input type="button" value="开灯" onclick="on()"/>
    <img src="img/on.gif" id="myImg"/>
    <input type="button" value="关灯" onclick="off()"/>
    
    <script>
        function on(){
        let img=document.getElementById("myImg");
        img.src="img/on.gif";
        }

        function off(){
        let img=document.getElementById("myImg");
        img.src="img/off.gif";
        }

        let num=0;
        setInterval(function(){
            if(num%2==0){
                on();
            }else{
                off();
            }
        },1000);
    </script>
</body>

1.2 history(了解)

获取:使用 window.history获取,其中window. 可以省略: window.history.方法();

方法:

forward():加载 history 列表中的下一个 URL

back():加载 history 列表中的前一个 URL

<body>
    <a href="liaxi02.html">跳转到下一个网页</a>
    <button onclick="fn01()">前进</button>
    <script>
        //forward():加载 history 列表中的下一个 URL
        function fn01(){
            window.history.forward();
        }
    </script>
</body>
<body>
    <a href="lianxi.html"></a>
    <button onclick="fn02()">后退</button>
   
    <script>
        // back():加载 history 列表中的前一个 URL
        function fn02(){
            window.history.back();
        }
    </script>
</body>

1.3 location(掌握)

获取:使用 window.location获取,其中window. 可以省略。 window.location.方法();

属性:href:设置或返回完整的URL

<body>
    <script>
        setInterval(
        function fn01(){ 
            window.location.href="https://www.baidu.com";
        },5000)
    </script>
   
</body>

二.DOM(掌握)

2.1 DOM对象概述

Document Object Model 文档对象模型。将标记语言的各个组成 部分封装为对象。

  • Document:整个文档对象
  • Element:元素对象
  • Attribute:属性对象
  • Text:文本对象

注意事项:

  • DOM:文档对象模型,操作html标签的文本 属性 css样式 以及事 件的。
  • DOM中将所有的标签封装成对象 img标签 ===>Image 对象
  • 所有标签的父对象是Element。

2.2 获取和操作 Element

获取:使用Document对象的方法来获取

  • getElementById:根据id属性值获取,返回一个Element对象
  • getElementsByTagName:根据标签名称获取,返回Element对 象数组
  • getElementsByName:根据name属性值获取,返回Element对 象数组
  • getElementsByClassName:根据class属性值获取,返回 Element对象数组
<body>
    <img src="img/off.gif" id="myImg">

    <div class="cls">hello</div>
    <div class="cls">world</div>

    <input type="checkbox" name="hobby">吃饭
    <input type="checkbox" name="hobby">睡觉
    <input type="checkbox" name="hobby">打游戏

    <script>
       //getElementById:根据id属性值获取,返回一个Element对象
       //    let img=document.getElementById("myImg");
       //    console.log(img);

       //修改图片地址 src属性:设置或返回图像的 URL。
       let img=document.getElementById("myImg");
       img.src="off.gif"

       //getElementsByTagName:根据标签名称获取,返回Element对象数组
       //    let div=document.getElementsByTagName("div");
       //    console.log(div);
       
       //设置字体颜色为红色:element.style 设置或返回元素的 style 属性。
       //更改文本:element.innerHTML 设置或返回元素的内容
       let div=document.getElementsByTagName("div");
       for(let i=0;i<div.length;i++){
            let divs=div[i];
            divs.style.color="red";
            divs.innerHTML="红温了"
       }

        //getElementsByName:根据name属性值获取,返回Element对象数组
        //获取上述所有的name属性值是hobby的标签
        // let arrInput=document.getElementsByName("hobby");
        // console.log(arrInput.length);

        //设置复选框被选中:checked 设置或返回 checkbox 是否应被选中
        let inputarr=document.getElementsByName("hobby");
        for(let i=0;i<inputarr.length;i++){
            let input=inputarr[i];
            if(i==1){
                input.checked=true;
            }
        }

        //getElementsByClassName:根据class属性值获取,返回Element对象数组
        //获取class是cls的标签
        let divClass=document.getElementsByClassName("cls");
        console.log(divs.length);
    </script>
   
</body>

三.事件监听

3.1 事件概述

事件:HTML 事件是发生在 HTML 元素上的“事情”。

比如:

  • 按钮被点击
  • 鼠标移动到元素之上
  • 按下键盘按键

事件监听:JavaScript 可以在事件被侦测到时执行代码

3.2 事件绑定

事件绑定有两种方式:

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

 <button onclick="fn01()">点我试试</button>
    <script>
        function fn01(){
            alert("试试就逝世")
        }
    </script>

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

<button id="btn" class="btn">点我试试</button>

    <script>
         document.getElementById("btn").onclick=function(){
             alert("别点了geigei");
        };

      
        document.getElementsByClassName("btn")[0].onclick=function(){
            alert("你再点我一个试试呢");
        };
    </script>

3.3 常见事件

3.3.1 onsubmit事件
 <form  method="get" action="#" id="loginForm">
        <input type="text" name="username" id="username">
        <input type="submit" value="登录">
    </form>

    <script>
        //1.给表单绑定提交事件
        document.getElementById("loginForm").onsubmit=function(){
            //2.获取输入框的值
            let inputValue=document.getElementById("username").value;
            //3.判断
            if(inputValue===""){
                //4.阻止表单提交
                fn01(); 
                return false; 
            }else{
                //5.提交表单
                return true;
            }
        };
    </script>
    <script>
        function fn01(){
            alert("你输入的账号为空请重新输入")
        }
    </script>

注意:表单提交事件onsubmit()。对于该事件,如果阻止表单提 交,绑定的匿名函数体返回false。可以提交表单返回true。

3.3.2 onload事件
 <script>
        //1.给表单绑定提交事件
        //document.getElementById("loginForm").onsubmit=function(){
        window.onload=function(){
            //2.获取输入框的值
            let inputValue=document.getElementById("username").value;
            //3.判断
            if(inputValue===""){
                //4.阻止表单提交
                fn01(); 
                return false; 
            }else{
                //5.提交表单
                return true;
            }
        };
   
        function fn01(){
            alert("你输入的账号为空请重新输入")
        }
    </script>
</head>
<body>
    
    <form  method="get" action="#" id="loginForm">
        <input type="text" name="username" id="username">
        <input type="submit" value="登录">
    </form>
</body>

3.4 表单验证(综合案例)

  • 当输入框失去焦点时,验证输入内容是否符合要求
  • 获取表单输入框
  • 绑定 onblur事件
  • 获取输入内容
  • 判断是否符合规则
  • 如果不合符规则,则显示错误提示信息
  • 当点击注册按钮时,判断所有输入框的内容是否都符合要求,如 果不合符则阻止表单提交
  • 获取表单对象
  • 为表单对象绑定 onsubmit
  • 判断所有输入框是否都符合要求,如果符合,则返回true, 如果有一项不符合,则返回false
<body>
    <!-- 完成表单校验 -->
    <form id="reg-form" action="#" method="get">
        <table>
        <tr>
        <td>用户名</td>
        <td>
        <input name="username" 
       type="text" id="username" onblur="checkUsername()">
        <!--display: none 属于css语法,表示
       隐藏标签  -->
        <span id="username_err" 
       class="err_msg" style="color: red; display: none">用
       户名不太受欢迎</span>
        </td>
        </tr>
        <tr>
        <td>密码</td>
                       <td>
                           <input name="password" 
       type="password" id="password" 
       onblur="checkPassword()">
                           <span id="password_err" 
       class="err_msg" style="color: red; display: none">密
       码格式有误</span>
                       </td>
                   </tr>
                   <tr>
                       <td>手机号</td>
                           <td class="inputs"><input 
       name="tel" type="text" id="tel" onblur="checkTel()">
                           <span id="tel_err" 
       class="err_msg" style="color: red; display: none">手
       机号格式有误</span>
                       </td>
                   </tr>
               </table>
               <div>
                   <input value="注 册" type="submit" 
       id="reg_btn">
               </div>
           </form>

        <script>
        //1. 验证 用户名是否符合规则:长度 6~12,单词字符组成
        function checkUsername(){
        //1.1 获取值
        let usernameValue=document.getElementById("username").value;
        //1.2 设置正规表达式
        let reg=new RegExp("^\\w{6,12}$");
        //1.3 判断
        if(reg.test(usernameValue)){
            document.getElementById("username_err").style.display="none";
            return true;
        }else{
            document.getElementById("username_err").style.display="block";
            return false;
        }
    }

        //2. 验证 密码是否符合规则:长度 6~12任意字符
        function checkPassword(){
          //1.1 获取值
          let pwdValues=document.getElementById("password").value;
          //1.2 设置正规表达式
          let reg=new RegExp("^\.{6,12}$");
          //1.3 判断
          if(reg.test(pwdValues)){
            document.getElementById("password_err").style.display="none"
            return true;
          }else{
            document.getElementById("password_err").style.display="block"
            return false;
          }  
        }
        //3. 验证 手机号是否符合规则:长度 11,数字组成,第一位是1
        function checkTel(){
            //获取值
            let telValue=document.getElementById("tel").value;
            //1.2 设置正规表达式
            let reg=new RegExp("^1[356789]\d{9}/$");
            //1.3 判断
            if(reg.test(telValue)){
                document.getElementById("tel_err").style.display="none";
                return true;
            }else{
                document.getElementById("tel_err").style.display="block";
                return false;
            }
        }
        //4. 表单是否可以提交
        let formValue=document.getElementById("reg-form").onsubmit=function(){
            //if(checkUsername && checkPassword && checkTel === true){
            return checkUsername && checkPassword && checkTel;
           // }else{
               // document.getElementById("reg_btn").style.cursor="not-allowed";
           // }
        };
        
        </script>
    
</body>

ok了家人们明天见,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2055561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(含华为案例) 企业数字化转型规划方案313页PDF限免下载!

一、前言 数字化转型势在必行&#xff0c;这已成为所有企业CIO的共识。但在现实中&#xff0c;很多数字化转型计划还是陷入重重困难&#xff0c;其原因大多在于企业内部对数字化转型的认知还不够透彻。尤其是对于那些业务正处于发展和上升期的公司&#xff0c;各个部门的负责人…

算法学习017 不同的二叉搜索树 c++算法学习 中小学算法思维学习 比赛算法题解 信奥算法解析

目录 C不同的二叉搜索树 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、运行结果 五、考点分析 六、推荐资料 C不同的二叉搜索树 一、题目要求 1、编程实现 给定一个整数n&#xff0c;求以1、2、3、......、n为节点组成的二叉搜索树有多少种…

网络瘫痪幕后黑手:如何应对TCP/IP端口消耗?

TCP/IP 协议是互联网通信的基础&#xff0c;它的稳定性和可靠性使我们使用互联网的十分重要的一点。在网络运行过程中&#xff0c; TCP/IP 的连接问题中&#xff0c; TCP/IP 端口耗尽故障是较为常见的一种。我们要及时有效地排除这些故障来保障网络的正常运行并确保业务顺利开展…

Windows下如何将mmdetection训练好的模型导出为onnx格式?

写在前面 注意:第一部分是踩坑记录,第二部分才是正确的导出步骤!!!! 踩坑方法记录 这一部分的方法看样子好像没啥问题,但是一步步繁琐的操作下来你会发现,你已经入坑了!!! 提醒大家,如果你正在按照这个方法导出模型,劝你尽快放弃,行不通【原因在于后续的pyth…

Linux网络配置的基本原理、常用命令以及实战操作

&#x1f600;前言 本篇博文是关于Linux网络配置的基本原理、常用命令以及实战操作&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您…

elasticsearch pipelineI详解:原理与使用

码到三十五 &#xff1a; 个人主页 在Elasticsearch的数据处理流程中&#xff0c;Pipeline API为数据的预处理和转换提供了强大的工具。随着Elasticsearch 5.x版本之后Ingest Node的引入&#xff0c;Pipeline API的引入为开发者们提供了更多的灵活性和便利性。本文将对Pipeline…

leetcode322. 零钱兑换,完全背包最值问题,附背包问题模板

leetcode322. 零钱兑换 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c;返回 -1 。 你可以认为每种…

人机环境系统智能已经超越了传统的空间智能和物理世界的概念

人机环境系统智能已经超越了传统的空间智能和物理世界的概念&#xff0c;进入了更为复杂的层次。在人机环境系统中&#xff0c;智能不仅涉及对物理世界的感知和理解&#xff0c;还包括对人类语言、情感、意图等的理解和生成。人工智能技术的应用&#xff0c;如自然语言处理、机…

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(三)---创建自定义激光雷达Componet组件

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车&#xff0c;并使用通过跨平台的方式进行ROS2和UE5仿真的通讯&#xff0c;达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础&#xff0c;Nav2相关的学习教程可以参考本人的其他博…

Kubernetes的快速安装

一、kubernetes的基本概念 1.kubernetes Kubernetes 是一个开源的开源的分布式编排技术&#xff0c;Kubernetes 致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台&#xff0c;其遵循主从式架构设计、组件可以分为工作节点 (Node) 组件&#xff0c;和控…

基础第3关:LangGPT结构化提示词编写实践

提示词&#xff1a; # Role: 伟大的数学家 ## Profile - author: LangGPT - version: 1.0 - language: 中文 - description: 一个伟大的数学家&#xff0c;能够解决任何的数学难题 ## Goals: 根据关键词进行描述&#xff0c;避免与已有描述重复。 ## Background: 你正在被…

2024网安创新大赛,美创科技产品方案双获奖!

2024年网络安全优秀创新成果大赛 “2024年网络安全优秀创新成果大赛”是国家网络安全宣传周重要活动之一。大赛由中央网信办指导、中国网络安全产业联盟&#xff08;CCIA&#xff09;主办。 近日&#xff0c;“2024年网络安全优秀创新成果大赛-杭州分站赛” 正式公布评选结果。…

强!小目标检测全新突破!检测速度快10倍,GPU使用减少73.4%

强&#xff01;小目标检测全新突破&#xff0c;提出Mamba-in-Mamba结构&#xff0c;通过内外两层Mamba模块&#xff0c;同时提取全局和局部特征&#xff0c;实现了检测速度快10倍&#xff0c;GPU使用减少73.4&#xff05;的显著效果&#xff01; 【小目标检测】是近年来在深度…

点灯案例练习(基于寄存器)

目录 一、需求描述 二、工程创建 二、硬件电路设计 三、软件设计 1、main.c 1、开启时钟 2、配置GPIOA的工作模式 3、设置PA1、PA8端口低电平 4、给死循环保持状态 2、最终代码如下 四、实验现象 前面&#xff0c;我们耗费大量时间&#xff0c;终于点亮了STM32板子上的…

WLAN基础知识(1)

WLAN&#xff1a; 无线局域网&#xff0c;无线技术&#xff1a;Wi-Fi、红外、蓝牙等 WLAN设备&#xff1a; 胖AP&#xff1a; 适用于家庭等小型网络&#xff0c;可独立配置&#xff0c;如&#xff1a;家用Wi-Fi路由器 瘦AP&#xff1a; 适用于大中型企业&#xff0c;需要配合AC…

【Kettle】新建转换工程

目录 一、新建一个转换工程1. 创建【转换】工程2. 创建输入对象并编辑步骤3. 创建输出对象并编辑步骤 二、运行转换工程和查看执行结果1. 运行转换工程2. 查看执行结果 一、新建一个转换工程 1. 创建【转换】工程 在 Kettle 欢迎界面中&#xff0c;依次点击【新建】->【转…

其实你就学不会 Python

标题党一下&#xff0c;Python 程序员成千上万&#xff0c;当然有很多人学得会。这里说的“你”&#xff0c;是指职场中的非专业人员。 职场人员一般会用 Excel 处理数据&#xff0c;但也会有很多无助的情况&#xff0c;比如复杂计算、重复计算、自动处理等&#xff0c;再遇上个…

中石油笔试25届秋招考什么?如何通过在线测评|附真题库面试攻略

职小豚 一、中石油公司介绍 嘿&#xff0c;小伙伴们&#xff01;今天咱们来聊聊大名鼎鼎的中石油。 中石油&#xff0c;那可是能源领域的巨无霸&#xff01;它就像一座庞大的能源宝库&#xff0c;为我们的生活和国家的发展源源不断地输送着动力。 中石油在国内外的油气勘探…

如何优雅的薅羊毛之Flux.1免费使用还支持中文prompt

我看硅基流动&#xff0c;现在免费用Flux.1的模型了&#xff0c;就注册了一个账号 但是Flux和之前的sd一样&#xff0c;中文理解力有问题 换哪个模型都不成&#xff0c;直接换英文提示词还行 放DIFY里串一下 我看tool里没有&#xff0c;那就自定义一个 DIFY要求schema要满足op…

SpringCloud天机学堂:分布式任务调度

SpringCloud天机学堂&#xff1a;分布式任务调度 文章目录 SpringCloud天机学堂&#xff1a;分布式任务调度1、分布式任务调度2、分布式任务调度原理3、分布式任务调度技术对比4、XXL-JOB介绍部署调度中心定义任务注册执行器配置任务调度执行一次 1、分布式任务调度 一般的定时…