JavaScript(Web APIs 作用和分类,DOM数是什么,document是什么,根据css选择器来获取DOM元素,修改DOM元素的方式,边量声明)

news2024/10/27 13:31:59

变量声明

  • 变量声明有三个 var let 和 const
  • 建议: const 优先,尽量使用const,原因是:
  1. Ø const 语义化更好
  2. Ø 很多变量我们声明的时候就知道他不会被更改了,那为什么不用 const呢?
  3. Ø 实际开发中也是,比如react框架,基本const

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

Ø 如果基本数据类型的值或者引用类型的地址发生变化的时候,需要用let Ø 比如 一个变量进行加减运算,比如 for循环中的 i++

1. Web API作用和分类
  • l. 作用: 就是使用 JS 去操作 html 和浏览器
  • 2.分类:DOM (文档对象模型)、BOM(浏览器对象模型)
2. 什么是DOM
  • DOM(Document Object Model——文档对象模型)是用来呈现以及与任HTML 或 XML文档交互的API
  • 白话文:DOM是浏览器提供的一套专门用来 操作网页内容 的功能
  • DOM作用:开发网页内容特效和实现用户交互
2.1获取DOM元素练习
<!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>
        .box{
            width: 200px;
            height: 200px;
        }
    </style>
</head>
<body>
    <!-- html标签 盒子 -->
    <div class="box">666</div>
    <div class="top">
        <ul>
            <li>123</li>
            <li>456</li>
            <li>789</li>
            <li>173</li>
            <li>643</li>
        </ul>
    </div>
    <script>
// querySelector 查询选择器
      // 获取DOM元素   
      //选择匹配第一个元素: document.querySelecto
      const box1 = document.querySelector('.box')
    //   参数:包含一个或多个有效的css选择器字符串
     // 返回值:css选择器匹配的第一个元素,一个对象
      console.log(box1);




    //   选择匹配多个元素  document.querySelectorAll
    const top1 = document.querySelectorAll('.top ul li')
    // 一定记得打印 打印出数组 对象集合
    console.log(top1);
    </script>
</body>
</html>
3.DOM树是什么
  • Ø 将 HTML 文档以树状结构直观的表现出来,我们称之为文档树或 DOM 树
  • Ø 描述网页内容关系的名词
  • Ø 作用:文档树直观的体现了标签与标签之间的关系

3.1 依次获取DOM对象练习

  

<!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>
    <ul class="nav">

        <li>你好</li>
        <li>我是</li>
        <li>Superman</li>
    </ul>

    <script>
        // 第一种方法
        // 伪类选择器
        // first-child :获取的第一行元素
        // nth-child(2):第二行元素,括号里写几就是第几行,也可以用2n等来表示
        // last-child:最后一行元素

        // const nav1 = document.querySelector('.nav li:first-child')
        // console.log(nav1);
        // const nav2 = document.querySelector('.nav li:nth-child(2)')
        // console.log(nav2);
        // const nav3 = document.querySelector('.nav li:last-child')
        // console.log(nav3);

        // 第二种方法
        // 可以用循环输出每个元素 for循环
        // 获取所有元素,再循环输出
        const nav1 = document.querySelectorAll('.nav li')

        // 伪数组,所以有数组长度,就是获取 对象名.length
        for (let i = 0; i < nav1.length; i++) {
        console.log(nav1[i]);  //每个小li

        }
    </script>
</body>
</html>
4.document 是什么?
  • Ø 是 DOM 里提供的一个对象
  • Ø 网页所有内容都在document里面

2. 根据CSS选择器来获取DOM元素 (重点)

  • 选择匹配的第一个元素

语法:document.querySelector('css选择器')

  • 参数:包含一个或多个有效的CSS选择器 字符串

  • 返回值:

    • CSS选择器匹配的第一个元素,一个 HTMLElement对象。
    • 如果没有匹配到,则返回null。
  • 选择器匹配多个元素

  • 语法:document.querySelectorAll('css选择器')

  • 参数:包含一个或多个有效的CSS选择器 字符串

  • 返回值:css选择器匹配的NodeList 对象集合

获取一个DOM元素我们使用谁?能直接操作修改吗?

Ø querySelector() Ø 可以 2. 获取多个DOM元素我们使用谁?能直接修改吗? 如果不能可以怎么做到修改 ? Ø querySelectorAll() Ø 不可以, 只能通过遍历的方式一次给里面的元素做修改

1.设置/修改DOM元素内容有哪2钟方式?

  • Ø 元素.innerText 属性
  • Ø 元素.innerHTML 属性

1.1操作元素内容,修改元素练习

<!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>
    <div class="box">想要修改的内容</div>
    <div class="first">可以解析标签</div>
    <script>
        // 第一步:获取元素
        const box1 = document.querySelector('.box')
        console.log(box1);

        // 修改内容 对象.innerText   显示存文本,不解析标签
        console.log(box1.innerText ); //获取要修改的文字内容
        box1.innerText = '哈哈'

 
        // 第一步:获取元素    对象.innerHTML 会解析标签,多标签建议使用模版字符
        const first1 = document.querySelector('.first')
        first1.innerHTML='<strong>我能修改标签</strong>'

    </script>
</body>
</html>

2. 两者者的区别是什么?

  • Ø 元素.innerText 属性 只识别文本,不能解析标签
  • Ø 元素.innerHTML 属性 能识别文本,能够解析标签

抽奖练习

<!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>
        .all{
            width: 500px;
            height: 300px;
            border:1px solid rgb(245, 131, 150);
        }
        .one{
            color:red;
        }
        .two{
            color: blue;
        }
        .three{
            color: green;
        }
        
    </style>
</head>
<body>
    <div class="all">
    <h1>幸福小区业主抽奖活动</h1>
        <h2><span class="one">一等奖:?</span></h2>
        <h3><span class="two">二等奖:?</span></h3>
        <h4><span class="three">三等奖:?</span></h4>
    </div>
    <script>
         //  创建一个数组储存 
          const arr = [ '张三', '李四', '王五', '赵六', '田七'] 
            //  生成数组随机数
            let random = Math.floor(Math.random() * arr.length)
          //  获取对象元素
          const one = document.querySelector('.one') 
          one.innerHTML=`一等奖:${arr[random]}`
           arr.splice(random,1)
           console.log(arr);
           
        //   生成第二个随机数
          let random1=Math.floor(Math.random() * arr.length)
            // 获取对象
            const two = document.querySelector('.two')
            //  对象名.innerHTML='值' 修改内容,修改里面的值
            two.innerHTML=`二等奖:${arr[random1]}`
            // 删除随机数中获取到的元素
            arr.splice(random1,1)

            // 生成第三个随机数
            let random2=Math.floor(Math.random() *arr.length)
            //  获取对象
            const three = document.querySelector('.three')
            three.innerHTML=`三等奖:${arr[random2]}`
            arr.splice(random2,1)
</script> 
   
</body>
</html>

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

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

相关文章

【unity框架开发8】unity场景Scene的使用, 如何封装一个场景管理器

文章目录 一、场景基本操作1、加载切换场景2、获取场景信息3、激活场景4、场景基本属性获取5、已加载场景个数6、获取场景中所有物体7、创建新场景8、卸载销毁场景 二、使用协程方法来异步加载场景1、AsyncOperation相关的代码应写在一个协同程序中。2、allowSceneActivation加…

AI深湖DeepLate人工智能的数据集格式开源项目

人工智能的数据集格式 文档 • 入门 • API 参考 • 例子 • 博客 • Slack 社区 • Twitter&#xff08;推特&#xff09; 用其他语言阅读这篇文章: English 深湖 Deep Lake Deep Lake 是一种数据集格式&#xff0c;提供简单的 API 以用于创建、存储和协作处理任何规模的…

Spring Security 与 OAuth 2.0 登录实现指南

文章目录 一、项目概述二、环境准备三、创建GitHub OAuth应用四、项目依赖配置五、配置OAuth 2.0六、创建控制器七、创建视图八、运行应用九、用户界面展示十、总结 在现代的Web应用中&#xff0c;安全性是一个不可忽视的因素。OAuth 2.0作为一种流行的授权框架&#xff0c;提供…

浅析主流监控告警系统基本架构和原理

浅析主流监控告警系统基本架构和原理 一&#xff0c;监控系统的作用和目前主流监控系统 1&#xff0c;作用&#xff1a;监控系统一般有以下这几个作用 实时采集监控数据&#xff1a;包括硬件、操作系统、中间件、应用程序等各个维度的数据。实时反馈监控状态&#xff1a;通过…

论文笔记:RelationPrompt :Zero-Shot Relation Triplet Extraction

论文来源: ACL Findings 2022 论文链接:https://arxiv.org/pdf/2203.09101.pdf 论文代码:http://github.com/declare-lab/RelationPrompt 本篇论文是由阿里达摩院自然语言智能实验室于2022年发表的关于零样本关系抽取的顶会论文,本篇博客将记录我在阅读过程中的一些笔记…

AI自动生成PPT解决方案,AI生成PPT-PrensentationGen-Java实现

AI自动生成PPT解决方案&#xff0c;AI生成PPT-PrensentationGen-Java实现。 利用大语言模型生成PPT文件的SpringBoot Web应用&#xff0c;主要功能是自动化创建演示文稿&#xff0c;适用于快速制作演示材料&#xff0c;特色在于其高效的模板处理和文本替换技术。 点击视频观看…

Python入门:如何在Python中优雅地书写多行字符串!

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 多行字符串📒📝 什么是多行字符串?📝 三重引号📝 字符串连接📝 反斜杠⚓️ 相关链接 ⚓️📖 介绍 📖 在编程过程中,时常会遇到需要使用多行字符串的场景。例如,在编写长参数、描述文本或代码文档时,多行字符串…

java生成日历数据列表并按日历格式导出到excel

日历格式输出 日历数据列表导出封装日历格式实体类效果 日历数据列表 /**** 封装日历数据* param year 年份* param month 月份*/public List<InspectionDailyStaffPlanCalendarData> selectCalendarDataList(int year,int month,List<InspectionDailyStaffPlan> …

centos7 Oracle 11g rac 静默安装(NFS配置共享存储)

1.环境信息准备 注意&#xff1a; 在配置网络时&#xff0c;Oracle RAC的每个节点必须具有至少两个以上的网卡&#xff0c;一张网卡对外提供网络服务&#xff0c;另一张网卡用于各个节点间的通信和心跳检测等。在配置RAC集群的网卡时&#xff0c;如果节点1的公共接口是eth0&…

随机变量及其分布

定义 1.随机变量是一个从样本空间&#xff08;所有可能结果的集合&#xff09;到实数集的函数。样本空间中的每个结果都对应于随机变量的一个值。随机变量的值可以是离散的&#xff0c;也可以是连续的。随机变量通常用大写字母表示&#xff0c;如 X、Y 或 Z。 2.随机变量和事…

难点:Linux 死机定位(进程虚拟地址空间耗尽)

死机定位(进程虚拟地址空间耗尽) 一、死机现象 内存富裕,但内存申请失败。 死机时打印: 怀疑是: 1、内存碎片原因导致。 2、进程虚拟地址空间耗尽导致。 3、进程资源限制导致。 二、内存碎片分析 1、理论知识:如何分析内存碎片化情况 使用 /proc/buddyinfo: /proc/…

Java-sec-code学习2

Java-Sec-Code学习1-文件上传漏洞 case1 url: http://127.0.0.1:8080/file/any 这是一个典型的上传页面&#xff0c;我们尝试上传一个文件试试看。 直接上传一个jsp文件&#xff0c;发现可以直接上传&#xff0c;非常顺利。这意味这后端和前端都没有对文件类型进行任何限制。…

[旧日谈]关于Qt的刷新事件频率,以及我们在Qt的框架上做实时的绘制操作时我们该关心什么。

[旧日谈]关于Qt的刷新事件频率&#xff0c;以及我们在Qt的框架上做实时的绘制操作时我们该关心什么。 最近在开发的时候&#xff0c;发现一个依赖事件来刷新渲染的控件会导致程序很容易异常和崩溃。 当程序在运行的时候&#xff0c;其实软件本身的负载并不高&#xff0c;所以…

【LeetCode每日一题】——724.寻找数组的中心下标

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目注意】六【题目示例】七【题目提示】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 前缀和 二【题目难度】 简单 三【题目编号】 724.寻找数组的中心下标 四【…

python基础路径的迁移

本人未安装anaconda或pycharm等&#xff0c;仅安装了某个python环境&#xff0c;因此以下方法仅针对基础python环境的迁移&#xff0c;不确保其他软件或插件正常运行 第一步将原python路径的整个文件夹剪切到新的路径下 第二步修改系统环境变量&#xff0c;将原来的python路径…

胤娲科技:AI绘梦师——一键复刻梵高《星空》

想象一下&#xff0c;你手中握有一张梵高的《星空》原图&#xff0c;只需轻轻一点&#xff0c;AI便能化身绘画大师&#xff0c;一步步在画布上重现那璀璨星河。 这不是科幻电影中的桥段&#xff0c;而是华盛顿大学科研团队带来的“Inverse Painting”项目&#xff0c;正悄然改变…

【软件工程】McCabe复杂度计算

文章目录 一、定义与公式二、计算步骤三、示例四、注意事项 McCabe复杂度&#xff0c;又称为环路复杂度&#xff08;Cyclomatic Complexity&#xff09;&#xff0c;是一种用来度量软件程序复杂度的经典方法。它通过计算程序中独立路径的数量&#xff0c;帮助开发人员理解代码的…

CMIP6数据处理 ▎单点降尺度、统计方法的区域降尺度、基于WRF模式的动力降尺度

CMIP6数据被广泛应用于全球和地区的气候变化研究、极端天气和气候事件研究、气候变化影响和风险评估、气候变化的不确定性研究、气候反馈和敏感性研究以及气候政策和决策支持等多个领域。这些数据为我们理解和预测气候变化&#xff0c;评估气候变化的影响和风险&#xff0c;以及…

【从感知机到神经网络】

感知机 什么是感知机 公式、框图表示 直观举例 根据身高体重判断胖瘦的感知机。 1、根据已知样本训练出一条直线&#xff0c;用于对非训练样本进行分类&#xff0c;这条直线就是感知机模型。 三维情况下感知机模型是一个平面 感知机的缺陷 缺陷原因 不能处理异或问题&…

【hot100-java】路径总和 III

二叉树篇。 灵神题解 ps: 完结 历时许久的hot100终于结束了&#xff0c;先是python&#xff0c;后是java。 学到了不少语法&#xff0c;也挺爽的&#xff0c;希望接下来几遍会更加熟悉哈哈哈。