Web APIs 第一天( Dom获取&属性操作)

Web API 基本认知

变量声明

1.变量声明有三个 var let 和 constl 我们应该用那个呢?
首先var 先排除,老派写法,问题很多,可以淘汰掉…
2. let or const ?
建议:
const 优先,尽量使用const,原因是:
 (1)const 语义化更好
很多变量我们声明的时候就知道他不会被更改了,那为什么不用 const呢?
实际开发中也是,比如react框架,基本constl 如果你还在纠结,那么我建议:
l有了变量先给const,如果发现它后面是要被修改的,再改为let

 const 声明的值不能更改,而且const声明变量的时候需要里面进行初始化
 但是对于引用数据类型,const声明的变量,里面存的不是 值,不是值,不是值,是 地址(数组,对象)

总结:

以后声明变量我们优先使用哪个?

const

 有了变量先给const,如果发现它后面是要被修改的,再改为let

2. 为什么const声明的对象可以修改里面的属性?

因为对象是引用类型,里面存储的是地址,只要地址不变,就不会报错

建议数组和对象使用 const 来声明

3. 什么时候使用let声明变量?

 如果基本数据类型的值或者引用类型的地址发生变化的时候,需要用let

比如 一个变量进行加减运算,比如 for循环中的 i++

作用和分类

作用: 就是使用 JS 去操作 html 和浏览器

分类:DOM (文档对象模型)、BOM(浏览器对象模型)

什么是DOM

DOM(Document Object Model——文档对象模型)是用来呈现以及与任意 HTML 或 XML文档交互的API

 白话文:DOM是浏览器提供的一套专门用来 操作网页内容 的功能

DOM作用 :开发网页内容特效和实现用户交互

DOM树

DOM树是什么

将 HTML 文档以树状结构直观的表现出来,我们称之为文档树或 DOM 树

描述网页内容关系的名词

作用:文档树直观的体现了标签与标签之间的关系

DOM对象(重要)

DOM对象:浏览器根据html标签生成的JS对象

所有的标签属性都可以在这个对象上面找到

修改这个对象的属性会自动映射到标签身上

DOM的核心思想

把网页内容当做对象来处理

document 对象

是 DOM 里提供的一个对象

所以它提供的属性和方法都是用来访问和操作网页内容的

网页所有内容都在document里面

获取DOM对象

根据css选择器获取DOM元素

1.选择匹配的第一个元素

语法:

document.querySelector(`css选择器`)

参数:包含一个或多个的字符串

返回值:CSS选择器匹配的第一个元素,一个HTMLELEment对象

如果没有匹配到,则返回null

得到的是一个伪数组:

有长度有索引号的数组

但是没有 pop() push() 等数组方法 想要得到里面的每一个对象,则需要遍历(for)的方式获得。

操作元素内容

1. 元素innerText 属性

将文本内容添加/更新到任意标签位置

显示纯文本,不解析标签

2. 元素.innerHTML 属性

将文本内容添加/更新到任意标签位置

会解析标签,多标签建议使用模板字符

操作元素常用属性

还可以通过 JS 设置/修改标签元素属性,比如通过 src更换 图片

最常见的属性比如: href、title、src 等

语法:

<script>
  // 1. 获取 img 对应的 DOM 元素
  const pic = document.querySelector('.pic')
	// 2. 修改属性
  pic.src = './images/lion.webp'
  pic.width = 400;
  pic.alt = '图片不见了...'
</script>

操作元素样式属性

通过 style 属性操作CSS

语法:

  <!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
      body{
      background: url(./图片/9.png) no-repeat  top center/
      cover;
      }
      </style>
  </head>
<body>
  <script>
    let m = Math.floor(Math.random()*10)
    document.body.style.backgroundImage=`url(./图片/${m}.jpg)`
  </script>
  </body>
  </html> 

操作类名操作CSS

元素.className = `active`

注意:

1.由于class为关键字,所以使用claaName去代替。

2.className是使用新值换旧值,所以需要添加一个类,需要保留之前的类名

通过claalist操作类控制css

为了解决className容易覆盖之前的类名,我们可以通过classlist方式追加和删除类名

语法:

元素.claaList.add(`类名`)
元素.claaList.remove(`类名`)
元素.claaList.toggle(`类名`)

操作表单元素属性

获取:DOM对象.属性名

设置:DOM对象.属性名=新值

表单.value = `用户名`
表单.type = `password`

表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示 如果为true 代表添加了该属性 如果是false 代 表移除了该属性

l比如: disabled、checked、selected

自定义属性

标准属性: 标签天生自带的属性 比如class id title等, 可以直接使用点语法操作比如: disabled、checked、 selected 

自定义属性:  在html5中推出来了专门的data-自定义属性 

在标签上一律以data-开头

在DOM对象上一律以dataset对象方式获取

<!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>Document</title>

</head>

<body>
   <div data-id="1"> 自定义属性 </div>
    <script>
        // 1. 获取元素
        let div = document.querySelector('div')
        // 2. 获取自定义属性值
         console.log(div.dataset.id)
      
    </script>
</body>

</html>

定时器--间歇函数

作用:每隔一段时间调用

这个函数间隔时间单位是毫秒

关闭定时器

一般不会刚创建就停止,而是满足一定条件再停止

用户协议的小案例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <textarea name="" id="" cols="30" rows="10">
    哈哈哈,想睡觉,吃饭,打豆豆
  </textarea>
  <br>
  <button class="btn">我已阅读用户协议60</button>
  <script>
    const btn = document.querySelector(`.btn`)
    let i = 5
    let n = setInterval(function(){
      i--
       btn.innerHTML = `我已阅读用户协议${i}`
      if (i == 0) {
        clearInterval(n)
        btn.ariaDisabled =false
        btn.innerHTML = `同意`
      }
    },1000)
   

    
  </script>
</body>

</html>

最后说一句话:

“我们都在阴沟里,但仍有人仰望星空。” 这句话教会我们,即使生活中充满了困境与挫折,也要保持对美好未来的憧憬。

  • 34
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
设计一个webapis学生报名系统的代码步骤如下: 1. 数据库设计:首先确定需要存储的数据,例如学生的基本信息,课程信息等。根据需求设计数据库表结构,并创建相应的表。 2. 后端接口设计:根据系统需求,设计后端接口,包括学生信息的录入、查询、修改和删除等功能。使用合适的编程语言,如Java、Python等,实现这些接口。 3. 前端界面设计:设计一个用户友好的前端界面,包括学生报名表单和查询功能。使用HTML、CSS、JavaScript等技术实现界面的布局和交互,确保用户能够方便地输入和查询信息。 4. 前后端交互:通过AJAX或其他技术,实现前后端的数据交互。前端向后端发送请求,后端处理请求并返回相应的数据。 5. 学生信息录入:在前端界面设计好的报名表单中,用户输入个人信息,通过调用后端接口将数据传递到后台。后台接收并验证输入的数据,并将学生信息存储到数据库中。 6. 学生信息查询:在前端界面设计好的查询功能中,用户输入需要查询的条件,通过调用后端接口将查询条件传递到后台。后台根据查询条件在数据库中查找匹配的学生信息,并将查询结果返回给前端。 7. 学生信息修改和删除:在前端界面设计好的修改和删除功能中,用户选择需要修改或删除的学生信息,并通过调用后端接口将相应的操作请求传递到后台。后台根据请求进行相应的操作,更新或删除数据库中的对应数据。 8. 错误处理和数据校验:在整个系统设计过程中,需要考虑错误处理和数据校验。在后端接口中,对输入的数据进行合法性检查,确保输入的数据符合要求。在前端界面中,对用户的输入进行格式验证,及时反馈给用户。 9. 安全性保障:为了保障系统的安全性,可以采用身份认证、权限控制等机制,确保只有授权的用户能够进行报名和查询等操作。 10. 测试和部署:在完成系统开发后,进行系统的测试和调试。确保系统的正确性和稳定性。最后将系统部署到服务器上,供用户使用。 以上是一个简单的webapis学生报名系统代码步骤,具体实现还需要根据具体需求进行调整和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

jackzhuoa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值