JS学习笔记(六)-Web APIs简介和DOM简介

01-17 JavaScript第二阶段Web APIs

学习笔记(六)

Web APIs简介

Web APIs和JS基础关联性

JS的组成:
  • ECMAScript:JavaScript语法-JavaScript基础
  • DOM:页面文档对象模型&BOM:浏览器对象模型-Web APIs
JS基础阶段以及Web APIs阶段

JS基础阶段

  • 学习的是ECMAScript标准规定的基本语法
  • 要求掌握JS的基础语法
  • 只学习基础语法,做不了常用的网页交互效果
  • 为JS后面的课程打基础、做铺垫

Web APIs阶段

  • Web APIs是w3c组织的标准
  • Web APIs主要学习DOM和BOM
  • Web APIs是JS所独有的部分
  • 主要学习页面交互功能
  • 需要使用JS基础的课程内容做基础

总结
JS基础学习ECMAScript基础语法为后面做铺垫,Web APIs是JS的应用,大量使用JS基础语法做交互效果。

API和Web API

API(Application Programming Interface,应用程序编程接口):是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

简单理解:API是给程序员提供的一种工具,以接口的形式来体现,以便能轻松的实现想要完成的功能。

Web API:是浏览器提供的一套操作浏览器功能页面元素的API(BOM和DOM)。
现阶段我们主要学习针对浏览器常用的API,主要针对浏览器做交互效果。
比如:我们想要浏览器弹出一个警示框,aler()方法就是一个Web APIs,我们可以直接使用alert(‘弹出’)。

MDN详细API:https://developer.mozilla.org/en-US/docs/Web/API

因为Web API很多,所以我们这个阶段叫做Web APIs。

总结

  • API是为我们程序员提供的一个接口,帮助我们实现某种功能,我们会使用就可以了,不必纠结内部如何实现。
  • Web API主要针对浏览器提供的接口,主要针对浏览器做交互效果。
  • Web API一般都有输入输出(函数的传参和返回值),
    Web API很多都是方法(函数)。
  • 学习Web API可以结合前面学习内置对象的思路学习。

DOM

DOM简介

什么是DOM
  • DOM(Document Object Model,简称DOM):文档对象模型,是W3C组织推荐的处理可拓展标记语言(HTML或者XML)的标准编程接口

  • W3C已经定义了一些列的DOM接口,通过这些DOM接口可以改变网页的内容,结构和样式。

DOM树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oZV4nyE6-1610980590904)(https://i.loli.net/2021/01/17/LvS6J3HClKdFQWe.jpg)]

Note:第一次在markdown文档中插入图片,图片是本地的,链接是用一个叫sm.ms(https://sm.ms/)的网站生成的,非常好用。

  • 文档:一个页面就是一个文档,DOM中使用document表示。
  • 元素:页面中的所有标签都是元素,DOM中使用element表示。
  • 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM中用node表示。

DOM把以上内容都看作是对象(对象有自己的属性和方法)。

获取元素

如何获取页面元素

DOM在我们实际开发中主要用来操作元素,获取元素可以使用以下几种方法:

  1. 根据ID获取
    使用document.getElementById() 方法可以获取带有ID的元素对象。

    • 因为我们文档页面从上往下加载,所以先得有标签,script要写到标签的下面
    • get 获得 element 元素 by 通过 ID 命名 驼峰命名法
    • 参数:id是大小写敏感的字符串
    • 返回值:返回的是一个元素对象
    • console.dir():打印我们返回的元素对象,更好的查看里面的属性和方法。
    <body>
     <div id="time">2021-1-17</div>
     <script>
         var timer = document.getElementById('time');//timer是一个元素对象
         console.log(timer);//<div id="time">2021-1-17</div>
         console.log(typeof timer);//Object
         console.dir(timer);
     </script>
     </body>
    
  2. 根据标签名获取
    (1) 使用document.getElementsByTagName() 方法可以返回带有指定标签的对象的合集

    • 返回值:返回的是获取过来元素对象的合集,以伪数组的形式存储。
    • 因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历。
    • 得到元素对象是动态的。
    • 如果页面只有一个li,返回的还是伪数组的形式。
    • 如果页面中没有这个元素,返回的是空的伪数组。
    <body>
    <ul>
        <li>blue</li>
        <li>pink</li>
        <li>red</li>
    </ul>
    <script>
        var lis = document.getElementsByTagName('li');
        console.log(lis); //[li, li, li]
        console.log(lis[0]); //<li>blue</li>
        for (var i = 0; i < lis.length; i++) {
            console.log(lis[i]);
        }
    </script>
    </body>
    

    (2) 还可以使用element.getElementsByTagName(‘标签名’) 方法获取某个元素(父元素)内部所有标签名的子元素。

    • 父元素必须是单个对象(必须指明是哪一个元素对象)//数组加索引。
    • 获取的时候不包括父元素自己。
     <body>
       <ol id='ol'>
         <li>blue</li>
         <li>pink</li>
         <li>red</li>
       </ol>
       <script>
         console.log(document.getElementsByTagName('ol')); //[ol]
         // console.log(ol.getElementsByTagName('li'));报错
         var ol = document.getElementsByTagName('ol');
         console.log(ol[0].getElementsByTagName('li'));//[li, li, li]
         //但一般情况下都是指定一个id
         var ol2 = document.getElementById('ol');//ol2[]作为父元素
         console.log(ol2.getElementsByTagName('li'));
       </script>
     </body>
    
  3. 通过HTML5新增的方法获取//ie9以上才支持

    <div class='box'>盒子1</div>
    <div class='box'>盒子2</div>
    <div id='nav'>
       <ul>
         <li>首页</li>
         <li>产品</li>
       </ul>
    </div>
    
    • document.getElementByClassName() 根据类名获得某些元素集合
    <script>
       var boxs = document.getElementsByClassName('box');
       console.log(boxs);
    </script>
    
    • document.querySelector() 返回指定选择器的第一个对象
    <script>
       var firstBox = document.querySelector('.box');
       console.log(firstBox);
       var nav = document.querySelector('#nav');
       console.log(nav);
       var li = document.querySelector('li');
       console.log(li);
    </script>
    

    切记里面的选择器要加符号,类要加点(.box),id要加#(#nav)

    • document.querySelectorAll(‘选择器’) 返回指定选择器的所有元素对象集合。
    var allBox = document.querySelectorAll('.box');
    console.log(allBox);//输出集合,是个伪数组
    console.log(allBox[0]);//输出伪数组里第一个元素
    
  4. 特殊元素获取(body、html)

    • 获取body元素
      document.body//返回body元素对象
    var bodyEle = document.body;
    console.log(bodyEle);
    console.dir(bodyEle);
    
    • 获取html元素
      document.documentElement//返回html元素对象
    //var htmlEle = document.html错误
    var htmlEle = document.documentElement;
    console.log(htmlEle);
    

事件基础

事件概述

JavaScript使我们有能力创建动态页面,而事件使可以被JavaScript侦测到的行为。简单理解:触发-响应机制。

网页中的每个元素都可以产生某些可以触发JavaScript的事件,例如,我们可以在用户点击某按钮时产生一个事件,然后去执行某些操作。

事件三要素

事件有三部分组成:事件源事件类型事件处理程序
这三部分也被称为事件三要素。

<body>
    <button id='btn'>唐伯虎</button>
    <script>
        
    </script>
</body>
  • 事件源:事件被触发的对象(如按钮)
  var btn = document.getElementById('btn');//获得了事件源
  • 事件类型:如何触发,什么事件,比如,鼠标点击(onclick)还是键盘按下。
  • 事件处理程序:通过一个函数赋值的方式完成。
btn.onclick = function(){//匿名函数
  alert('点秋香');
}
执行事件的步骤
  1. 获取事件源
  2. 注册事件(绑定事件)
  3. 添加事件处理程序(采取函数赋值形式)
<body>
    <div>123</div>
    <script>
        // 执行事件步骤
        // 点击div 控制台输出 我被选中了
        // 1. 获取事件源
        var div = document.querySelector('div');
        // 2. 绑定事件
        // div.onclick
        // 3. 添加事件处理程序
        div.onclick = function() {
            console.log('我被选中了')
        }
    </script>
</body>
常见的鼠标事件
  • onclick-鼠标点击左键触发
  • onmouseover-鼠标经过触发
  • onmouseout-鼠标离开触发
  • onfocus-获得鼠标焦点触发
  • onblur-失去鼠标焦点触发
  • onmousemove-鼠标移动触发
  • onmouseup-鼠标弹起触发
  • onmousedown-鼠标按下触发
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计一个webapis学生报名系统的代码步骤如下: 1. 数据库设计:首先确定需要存储的数据,例如学生的基本信息,课程信息等。根据需求设计数据库表结构,并创建相应的表。 2. 后端接口设计:根据系统需求,设计后端接口,包括学生信息的录入、查询、修改和删除等功能。使用合适的编程语言,如Java、Python等,实现这些接口。 3. 前端界面设计:设计一个用户友好的前端界面,包括学生报名表单和查询功能。使用HTML、CSSJavaScript等技术实现界面的布局和交互,确保用户能够方便地输入和查询信息。 4. 前后端交互:通过AJAX或其他技术,实现前后端的数据交互。前端向后端发送请求,后端处理请求并返回相应的数据。 5. 学生信息录入:在前端界面设计好的报名表单中,用户输入个人信息,通过调用后端接口将数据传递到后台。后台接收并验证输入的数据,并将学生信息存储到数据库中。 6. 学生信息查询:在前端界面设计好的查询功能中,用户输入需要查询的条件,通过调用后端接口将查询条件传递到后台。后台根据查询条件在数据库中查找匹配的学生信息,并将查询结果返回给前端。 7. 学生信息修改和删除:在前端界面设计好的修改和删除功能中,用户选择需要修改或删除的学生信息,并通过调用后端接口将相应的操作请求传递到后台。后台根据请求进行相应的操作,更新或删除数据库中的对应数据。 8. 错误处理和数据校验:在整个系统设计过程中,需要考虑错误处理和数据校验。在后端接口中,对输入的数据进行合法性检查,确保输入的数据符合要求。在前端界面中,对用户的输入进行格式验证,及时反馈给用户。 9. 安全性保障:为了保障系统的安全性,可以采用身份认证、权限控制等机制,确保只有授权的用户能够进行报名和查询等操作。 10. 测试和部署:在完成系统开发后,进行系统的测试和调试。确保系统的正确性和稳定性。最后将系统部署到服务器上,供用户使用。 以上是一个简单的webapis学生报名系统代码步骤,具体实现还需要根据具体需求进行调整和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值